我想更改所有文件夹/文件的权限(其中一些除外)

我想更改所有文件夹/文件的权限(其中一些除外)

请参阅下面的文件夹层次结构。

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

我想使用以下规则更改所有权 (chown) 和权限 (chmod):

  1. 除了以“.backup”结尾的文件夹之外的所有文件夹/子文件夹。在我的示例文件夹层次结构中,以下文件夹及其内容将被忽略:folder11.backup、folder2.backup 和folder3111.backup

  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 ...

相关内容