我认为我在使用find方面相当先进,但是每次使用它时,我都无法记住关闭-exec选项的方法。每次使用时,我都会花费大量时间阅读。我只是没有充分使用它还是对自己期望过高?让我们从一个让我感到沮丧的典型例子开始。
目录结构包含具有所有不正确权限的文件,隐藏文件,符号链接等。我想将所有权更改为合理的值
find . -type f -exec chown username {} \;
find . -type d -exec chown username {} \;
find . -type d -exec chgrp usergroup {} \;
find . -type f -exec chgrp usergroup {} \;
(请原谅我,如果结尾是倒退的……一个小时前我看了一下,但仍然不确定)
但是由于安装,符号链接等原因,我不敢运行它。我知道-xdev会放弃跨分区,但是我不确定位于符号链接目录中的文件会发生什么情况。
那么,如何掌握这种可以杀死重要文件的野兽呢?
更新修剪以下最佳建议并进行总结:
- 将练习目录链接并挂接到其他练习目录。
- 使用xargs而不是非直观的exec命令。
- 使用-exec echo {}可以保持健康和安全
- 半冒号很特殊,您正在转义,因此转义符是第一个
- -or命令可以帮助您组合选择条件。
我对print0有点困惑,但是xargs一直是我尝试避免的乍一看并不容易理解的地方。