您的位置:首页 > 运维架构 > Shell

find命令进阶(二):对找到的文件执行操作exec

2017-05-29 19:48 267 查看
以下面的命令为例:

find ~ -type f -name 'foo*' -exec ls -l '{}' ';'


分面两部分,第一部分:

find ~ -type f -name 'foo*'


即按照通配符
foo*
查找用户目录下的 regular files。第二部分:

-exec ls -l '{}' ';'


-exec
是一条件命令,
{}
代表查找到的文件的路径,对这些路径下的文件执行操作
ls -l
,最后用一个
;
符号结束。

这里
{}
;
都要放在单引号里,是因为括号和冒号在 shell 中都有特定含义,放入单引号之后按字面意思执行。

这条命令也可以改成:

find ~ -type f -name 'foo*' -exec ls -l '{}' +


两条命令的效果相同,不同点在于,以
;
结尾的话,相当于
ls -l
对返回的每个查找结果都执行一次; 以
+
结尾的话,相当于把所有查找到的结果用
ls -l
命令一次性执行。在效率上有区别。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux shell find exec