すべてのフォルダ/ファイルの権限を変更したい(一部除く)

すべてのフォルダ/ファイルの権限を変更したい(一部除く)

以下のフォルダ階層を参照してください。

folder1
-> file11.txt
-> file12.txt
-> folder11.backup
   -> file111.txt
   -> file112.txt
   -> file113.bak
   -> folder111
   -> and many more folders and files

folder2
-> file21.txt
-> file22.txt
-> file23.bak

folder2.backup
-> file111.txt
   -> file112.txt
   -> folder111
   -> folder112
      -> file1121.bak
      -> file1122.txt
   -> and many more folders and files

folder3
-> folder31
   -> folder311
      -> folder3111.backup
         -> file3111.txt
         -> file3112.txt
         -> folder3111 
         -> and many more folders and files
      -> folder3112
         -> file31121.bak
         -> file31121.txt

次の規則を使用して所有権と権限(chmod)を変更したいと思います。

  1. 「.backup」で終わるフォルダを除くすべてのフォルダ/サブフォルダ。私のサンプルフォルダ階層では次のフォルダとその内容無視されます:フォルダ11.バックアップ、フォルダ2.バックアップ、フォルダ3111。バックアップ

  2. ".bak"拡張子を持つファイルを除くすべてのファイル。ただし、拡張子に関係なくファイルが .backup フォルダーにある場合は、ルール 1 に従ってそのファイルが除外されます。

助けてくれてありがとう。 :)

ベストアンサー1

(1) 目次:

find . -mindepth 1 -type d -not -name '*.backup' \
    -not -path '*.backup/*' -print0 | xargs -0 chmod MODE

(2)書類:

find . -type f -not -name '*.bak' \
    -not -path '*.backup/*' -print0 | xargs -0 chmod MODE

ls -ldテスト用にコマンドラインを実行する代わりにを使用できますchmod ...

おすすめ記事