如何递归触摸与模式匹配的文件


8

在我的〜/ docs目录中,我要“触摸”所有以.txt结尾的文件

我怎样才能做到这一点?

Answers:


20

find

find ~/docs -name "*.txt" -exec touch {} \;
  • 您搜寻 ~/docs
  • name选项将匹配所有txt文件-  exec将对touch文件名执行命令,该文件名将替换为{}
  • \;结束命令,并touch为找到的每个文件调用一次

注意:

  • 稍有变化,\+最后构造了一个命令,一次可以touch在所有这些文件上运行。并非所有命令都可以做到这一点,但是touch如果您有很多受影响的文件,它可以工作并为您节省一些调用。

4
{} \+在这里会更好... touch可以在其命令行上处理许多文件名,因此,例如,将对一万个文件和{} \; 一万次调用touch...使用{} \+touch仅调用一次(取决于可用内存)...在这里是摘自find的手册页的摘录:-exec command {} + ... The command line is built in much the same way that xargs builds its command linesman find文档中有更多详细信息。
Peter.O 2012年

@ Peter.O是的,我的习惯是使用其他语法。
slhck 2012年

@slhck:而且速度慢得多,开销也更高。
Hello71 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.