Linux

如何排除遞歸 chmod 中的隱藏文件?

  • June 23, 2019

我必須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,或與tcshset globstar)萬用字元:

chmod 755 -- some_dir some_dir/**/*

(您也可以使用fishor執行此操作bash -O globstar,但請注意bash4.3 之前的版本並fish在降級目錄時遵循符號連結。它在 bash 4.3 中部分修復,因為您仍然可以在目錄的符號連結中獲取文件,但不再在這些目錄的子目錄中和 4.2 一樣,在 5.0 中完全固定)

您確定要使所有文件都可執行嗎?

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