Linux命令 find 和 exec 联合使用
时间:2022-04-03 09:42
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 {} \;