Linux命令 find 和 exec 联合使用

shell的内建命令exec将并不启动新的shell,而是用要被执行命令替换当前的shell进程,并且将老进程的环境清理掉,而且exec命令后的其它命令将不再执行。 因此,如果你在一个shell里面,执行exec ls那么,当列出了当前目录后,这个shell就自己退出了,因为这个shell进程已被替换为仅仅执行ls命令的一个进程,执行结束自然也就退出了。exec 必须以 \; 结束。exec 后面跟的是二级执行命令。

find命令的一个选项,如下所示: (1)在当前目录下(包含子目录),查找所有txt文件并找出含有字符串"bin"的行 find ./ -name "*.txt" -exec grep "bin" {} \;

 (2)在当前目录下(包含子目录),查找10天前的log文文件 find ./ -name ".log" -mtime +10 -exec ls {} \;  ( {}和\;中间有空格,\和;中间没有空格,是连接的)

 (3)在当前目录下(包含子目录),删除10天前的log文文 find ./ -name ".log" -mtime +10 -exec rm {} \;    

 (4)在当前目录下(包含子目录),删除所有txt文件 find ./ -name "*.txt" -exec rm {} \;

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。