为什么这不起作用我试图将所有文件更改为644 abd all -d to 755:
find . -type f -exec chmod 644 {} ;
我得到:find:缺少`-exec'的参数 感谢
答案 0 :(得分:112)
管道到xargs是一种肮脏的方式,可以在find中完成。
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;
您可以更好地控制其他选项,例如:
find . -type d -user harry -exec chown daisy {} \;
你可以通过查找做一些非常酷的事情,你也可以做一些非常危险的事情。看看“找人”,它很长但值得快速阅读。并且,一如既往地记住:
答案 1 :(得分:14)
一个很好的选择是:
find . -type f | xargs chmod -v 644
和目录:
find . -type d | xargs chmod -v 755
更明确:
find . -type f | xargs -I{} chmod -v 644 {}
答案 2 :(得分:4)
我经常需要这个,所以我在~/.bashrc
文件中创建了一个函数:
chmodf() {
find $2 -type f -exec chmod $1 {} \;
}
chmodd() {
find $2 -type d -exec chmod $1 {} \;
}
现在我可以使用这些快捷方式:
chmodd 0775 .
chmodf 0664 .