`find / someDir / * -exec rm {} \`是什么意思?

时间:2018-01-29 22:41:01

标签: bash shell unix find exec

我理解这个命令

  • 删除/some/directory/中至少4天的所有文件
  • 保留所有文件夹不变(提供错误cannot remove '.../someDir': Is a directory)。

有人可以解释-exec rm {} \;的语法吗?

find /some/directory/* -mtime +4 -exec rm {} \;

特别是{}\;的含义是什么? {} \;的参数是-exec吗?

2 个答案:

答案 0 :(得分:2)

{}是当前文件的路径名

\;是终止命令的分号(在您的情况下为rm)。它必须使用反斜杠进行转义,否则shell将解释它是整个find命令的结尾

答案 1 :(得分:1)

{}填写find表达式的结果。 \被用来转义;,因为我们希望-exec选择它,但是bash本身会默认选择它。

这个问题已在其他地方多次得到解答。例如,here