Bash
確保子目錄不會受到循環(或查找)的影響
請查看這些旨在完成基本相同任務的程式碼(找到
.htaccess
網站的主要內容並進行更改):for dir in "$HOME"/public_html/*.{com,co.il}/; do if pushd "$dir"; then chmod 644 .htaccess popd fi done 2>/dev/null
和:
find "$HOME"/public_html/*.{com,co.il} -name ".htaccess" -exec chmod 644 {} \;
這些是否也會影響
.htaccess
下每個目錄的子目錄中的文件public_html
?
實際上,第一個循環只考慮您列出的直接目錄結構中的文件(當然,萬用字元已填寫)。您列出的
find
命令不會將自身限制在任何級別的目錄結構中,並且可以在目錄樹中名為 .htaccess 的chmod
任何和所有文件上執行。要將
find
命令限制在它開始的目錄結構中(注意你已經通過 glob 給了它,多個起始目錄),添加-maxdepth 1
謂詞:find "$HOME"/public_html/*.{com,co.il} -maxdepth 1 -name ".htaccess" -exec chmod 644 {} \;