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

Ste*_*eod 8 linux touch

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

我怎样才能做到这一点?

slh*_*hck 20

find

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

笔记:

  • 一个细微的变化,\+最后构造一个命令来一次touch在所有这些文件上运行。这对所有命令都是不可能的,但touch如果您有很多受影响的文件,它可以为您节省一些调用。

  • `{} \+` 在这里会更好...... `touch` 可以在其命令行上处理许多文件名,例如,对于 10,000 个文件,`{} \;` 将进行 **10,000** 调用到`touch`... 使用`{} \+` 只会调用`touch` 一次(取决于可用内存)... 以下是*find* 手册页的摘录:`-exec command {} + 。 .. 命令行的构建方式与 xargs 构建其命令行的方式大致相同。`man find` 文档中有更多细节。 (4认同)