"nameOfFolderToBeExcluded" という名前のフォルダーの内容とは別に、現在の作業ディレクトリ内のフォルダーの内容に対して許可ビット 755 を再帰的に設定するとします。 :
chmod 755 -R $(ls | awk '{if($1 != "nameOfFolderToBeExcluded"){ print $1 }}')
find
を使用できます 指定されたファイル名と exec
に一致しないすべてのファイルを検索するには 次のようなすべてのファイルに対するコマンド:
ディレクトリ test
を除外する必要があると仮定します 他のすべてのファイルとディレクトリにファイル許可 755 を与えます。これはツリーの一番上から実行されます。
find ! -name test -exec chmod 755 {} \;
テスト済み
example@unixlinux.online:$ touch a1.txt a2.txt a3.txt test
example@unixlinux.online:$ ls -lrt
total 0
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 test
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 a3.txt
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 a2.txt
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 a1.txt
example@unixlinux.online:$ find ! -name test -exec chmod 777 {} \;
example@unixlinux.online:$ ls -lrt
total 0
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 test
-rwxrwxrwx 1 mtk mtk 0 Sep 17 23:55 a3.txt*
-rwxrwxrwx 1 mtk mtk 0 Sep 17 23:55 a2.txt*
-rwxrwxrwx 1 mtk mtk 0 Sep 17 23:55 a1.txt*
example@unixlinux.online:$
ファイル test
のファイル許可 変わらずでした。ディレクトリにも同じことが当てはまります。
何の殻?
bash を実行している場合 (おそらく Linux を使用している場合)、extglob を確認できます。これにより、「ネガティブ グロブ」!()
など、グロビングのオプションが増えます。
shopt -s extglob
chmod 774 !(file-to-ignore)