Linux使用find命令查找并对查找结果执行某个操作(-exec)

find 是我们很常用的一个Linux命令,但是我们一般查找出来的额并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了。

  exec解释:
  -exec 参数后面跟的是 command 命令,它的终止是以“;”为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。  

  {} 花括号代表前面find查找出来的文件名。

  使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find 查找,很方便的。在有些操作系统中,只允许 -exec 选项执行诸如 ls 或 ls -l 这样的命令。大多数用户使用着一些选项是为了查找旧文件并删除它们。建议再真正执行 rm 命令删除文件之前,最好先用 ls 命令看一下,确认他们是所要删除的文件。 exec 选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。为了使用 exec 选项,必须要同时使用 print 选项。如果验证一下 find 命令,会发现该命令只输出从当前路径起的相对路径及文件名

实例1

查找当前目录下的所有png文件,并将查找结果复制到 /home/robin/png/下

实例2

定时将网站目录/VAR/WWW/HTML/整站打包备份,并删除5天前的备份数据(附计划任务data_back.sh文件)

实例3

查找大于1GB的文件(G:GB M:Mb)

robin@robin-B450M-GAMING:~$ find /home/download/ -type f -size +1G

实例4

查找所有的mp4格式的视频文件,并将文件名及大小输出到movie.txt文档中

robin@robin-B450M-GAMING:/media/robin/sda-media/电影$ find -name ‘*.mp4’ -exec du -sh {} > ~/movie.txt \;

作者: 洛水之滨

天行健,君子以自强不息; 地势坤,君子以厚德载物。