如何掌握UNIX find命令?
我觉得我在使用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 {} ; (请原谅我,如果结局是倒退的……我一小时前看过它,但我仍然不确定) 但我害怕因为坐骑,象征性的链接等而运行它.我已经做了chmod的最终蠢事.*并且让它在我之前向前冲.我知道-xdev会放弃跨越分区,但我不确定生活在符号链接目录中的文件会发生什么. 那么如何掌握这种可以杀死关键文件的野兽呢? 更新修剪下面的最佳建议并总结: >将练习目录链接并挂载到其他练习目录. 我对print0有点困惑,但xargs一直有点乍看之下不易理解,我试着避免.
好吧,就-exec语法而言,你可以做很多人,放弃并使用xargs:
find . -type f | xargs chown username (或带有空格的文件和其他无意义的安全版本) find . -type f -print0 | xargs -0 chown username 或者,为了尝试记住用分号做的正确的事情,你需要钻进脑袋的是你使用分号来终止-exec正在运行的命令,你必须转义分号,因为它对bash有特殊意义.这就是为什么它是反斜杠分号.你似乎有{}替换部分没问题. 至于杀死文件等等,如果你正在运行像你所说的大而危险的东西,首先要这样做: find . -type f -exec echo chown username {} ; 并审查结果.这基本上是一个“干运行”,你可以看到它运行的命令.绝对是一个很好的做法.对.*问题没有帮助,但你知道现在不要那么做. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |