Linux
如何排除遞歸 chmod 中的隱藏文件?
我必須
chmod -R 755 some_dir
在“some_dir”包含“.git”文件夾的地方做。在執行遞歸 chmod 時,有什麼方法可以排除隱藏文件和文件夾?注意:chmoding .git 文件夾拋出以下錯誤
some_dir/.git/objects/pack/pack-dd149b11c4e5d205e3022836d49a972684de8daa.idx': Operation not permitted
我真的不需要 chmod .git 文件夾,但不幸的是我也無法刪除它們。
不與
chmod
單獨。您需要使用find
:find some_dir -name '.?*' -prune -o -exec chmod 755 {} +
或與
zsh
(或ksh93 -G
,或與tcsh
後set globstar
)萬用字元:chmod 755 -- some_dir some_dir/**/*
(您也可以使用
fish
or執行此操作bash -O globstar
,但請注意bash
4.3 之前的版本並fish
在降級目錄時遵循符號連結。它在 bash 4.3 中部分修復,因為您仍然可以在目錄的符號連結中獲取文件,但不再在這些目錄的子目錄中和 4.2 一樣,在 5.0 中完全固定)您確定要使所有文件都可執行嗎?