Directory

使 dir 中的所有文件可執行(非遞歸),同時嚴格確保非遞歸

  • February 11, 2018

我奇怪地抓住了這個問題的標題,但我確實想知道在某些情況下是否需要格外小心,並在以chmod非遞歸方式(不帶-R參數)更改權限時以某種方式“強制”非遞歸性。

假設我有一個目錄~/x。這個目錄有幾個文件,還有一個子目錄~/x/y也有幾個文件,我決定讓所有x文件都可以執行,而不影響y. 我可以執行:

chmod +x ~/x/*

Surlychmod應該可以完成這項工作,並且在任何 Bash 版本(包括未來版本)中,POSIX 邏輯都不太可能發生更改,並且上述 chmod 也會影響子目錄,但我想知道 Bash 中是否存在任何情況(或普通外殼),其中chmod +x ~/x/*也將覆蓋y文件,以及如何改進我的命令以防止這種不希望的更改?

您可以使用查找和限制僅獲取目前目錄中的文件

find ~/x -maxdepth 1 -type f -exec chmod +x {} +

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