2014-12-03 56 views
0

我是Linux新手,所以原諒我,如果你不理解我:)LINUX/UNIX:腳本啓動一些命令,如果一些目錄樹中存在

我有我需要運行的命令的問題chmod 777 XXX(XXX是目錄),但我不能登錄到它,但我可以推UNIX腳本將執行此操作。但問題是,我不知道該腳本在哪個路徑中啓動/放置:)。

詳細信息:我需要腳本來檢查本機上是否存在相對路徑(目錄樹)CCCC/YYY/XXX,如果存在以下命令需要在此目錄下啓動chmod 777 XXX。 (XXX應解析爲絕對路徑:))

我做了一些測試,但沒有找到真正的結果。

+0

你需要找到一個特定的目錄結構'CCCC/YYY/XXX',無論它位於磁盤上,並將'XXX'目錄的權限設置爲'777'?你不知道目錄結構會在哪裏,但你知道權限將是錯誤的,需要打開* wide * open? – 2014-12-03 15:11:14

+0

我知道我會允許所有黑客訪問:),但是apache設置爲用戶無法訪問此目錄的這種方式(這是MVC應用程序,因此apache正在保護此目錄) – 2014-12-03 15:15:19

+1

如果系統上有特定用戶需要訪問該目錄有更好的方法來解決這個問題,而不是'777'權限。而你沒有回答我的其餘問題。 – 2014-12-03 15:16:52

回答

1

locate命令將幫助你在這裏:

path_part=CCCC/YYY/XXX 
if output=$(locate "$path_part" 2>/dev/null); then 
    grep "$path_part$" <<< "$output" | 
    while IFS= read -r dir; do 
     # do something in "$dir" 
    done 
fi 

locate需要你運行updatedb - 您的系統可能已經運行週期。

+0

恕我直言,你最好在大多數情況下使用'find';今天的磁盤通常足夠快(但這取決於文件的數量,你多久這樣做等等) – Carpetsmoker 2014-12-03 15:55:19

相關問題