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

以下面的命令为例:

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命令一次性执行。在效率上有区别。

原文地址:https://www.cnblogs.com/yaos/p/6940564.html