Bash

確保子目錄不會受到循環(或查找)的影響

  • June 21, 2018

請查看這些旨在完成基本相同任務的程式碼(找到.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 {} \;

引用自:https://unix.stackexchange.com/questions/450913