请参阅下面的文件夹层次结构。
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):
除了以“.backup”结尾的文件夹之外的所有文件夹/子文件夹。在我的示例文件夹层次结构中,以下文件夹及其内容将被忽略:folder11.backup、folder2.backup 和folder3111.backup
所有文件,除了扩展名为“.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 ...
。