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

Bash “find/someDir/*-exec rm{}\`是什么意思?,bash,shell,unix,find,exec,Bash,Shell,Unix,Find,Exec,我理解这个命令 删除/some/directory/中至少4天的所有文件 使所有文件夹保持不变(给定错误无法删除“…/someDir”:是一个目录) 有人能解释一下-exec rm{}的语法吗 find /some/directory/* -mtime +4 -exec rm {} \; 特别是,{}和\”的含义是什么?是{}指向-exec?{}的参数填充查找表达式的结果\用于转义因为我们希望-exec拾取它,但是bash本身默认会拾取它 这个问题在其他地方已经得到了多次回答。例如,.{}

我理解这个命令

  • 删除
    /some/directory/
    中至少4天的所有文件
  • 使所有文件夹保持不变(给定错误
    无法删除“…/someDir”:是一个目录
有人能解释一下
-exec rm{}的语法吗

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

特别是,
{}
\”的含义是什么?是
{}
指向
-exec

{}
的参数填充
查找表达式的结果<代码>\
用于转义
因为我们希望
-exec
拾取它,但是bash本身默认会拾取它


这个问题在其他地方已经得到了多次回答。例如,.

{}
是当前文件的路径名


\
是终止命令的分号(
rm
)。它必须用反斜杠转义,因为否则,shell将解释它是整个
find
命令的结尾

See或
manfind
…如果我在这里更改命令,我将如下所示:
find/some/directory/*-type f-mtime+4-exec rm{}
为避免在
rm
尝试删除
find
命令将传递的某些目录时出错,
-type f
将强制find命令仅查找文件!