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