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本身默认会拾取它 这个问题在其他地方已经得到了多次回答。例如,.{}
- 删除
中至少4天的所有文件/some/directory/
- 使所有文件夹保持不变(给定错误
)无法删除“…/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命令仅查找文件!