按名称查找文件夹,并递归设置其子文件夹权限为755

时间:2015-03-12 16:06:27

标签: linux bash find

我试图将find . -type d -name 'uploads'的结果传递到另一个查找函数中,然后查找所有子文件夹并设置权限,但它不接受它。

有人可以帮忙吗?我想要做的是找到一个名为“uploads”的文件夹,所有子文件夹将其权限设置为755,将所有文件设置为777.

1 个答案:

答案 0 :(得分:3)

不是特别优雅,但是while循环可以完成这项工作(除非您的名称或其他内容中包含带换行符的文件夹,在这种情况下xargsparallel将是更好的选择)

find . -type d -name 'uploads' | while read d; do chmod -R 755 "$d"; done

...使用xargs,你只能执行单个命令,但这似乎就是你需要的全部

find . -type d -name 'uploads' -print0 | xargs -0 chmod -R 755 

E:要按照请求创建所有子目录755和文件777,while循环将执行此操作:

 find . -type d -name 'uploads' | while read d; do 
    find "$d/" -type d -print0 | xargs -0 chmod 755; 
    find "$d/" -type f -print0 | xargs -0 chmod 777; done