Linux如何使用find命令将查找出来的文件删除或者复制到另一个位置?

Linux的日常运维中,我们经常能够用到find命令对文件进行一些批量操作,例如批量导出日志等等,那么如何使用find命令将匹配出的文件执行操作呢?

我们先使用find 命令查找一下我的linux主机中所有log日志文件

[root@localhost ~]# find / -type f -iname "*.log"
/var/log/sssd/sssd.log
/var/log/sssd/sssd_implicit_files.log
/var/log/sssd/sssd_nss.log
/var/log/tuned/tuned.log
/var/log/audit/audit.log
/var/log/anaconda/anaconda.log
/var/log/anaconda/X.log
/var/log/anaconda/program.log
/var/log/anaconda/packaging.log
/var/log/anaconda/storage.log
/var/log/anaconda/lvm.log

我们可以看到 使用find命令查找出了所有以log扩展名结尾的日志文件,可以看到他们都存放在 /var/log/中的子文件夹中,如果我们需要收集这些日志的话,我们可以采用以下命令

[root@localhost ~]# find / -type f -iname "*.log" -exec cp -rfvp {} /root/testfile/ \;
'/var/log/sssd/sssd.log' -> '/root/testfile/sssd.log'
'/var/log/sssd/sssd_implicit_files.log' -> '/root/testfile/sssd_implicit_files.log'
'/var/log/sssd/sssd_nss.log' -> '/root/testfile/sssd_nss.log'
'/var/log/tuned/tuned.log' -> '/root/testfile/tuned.log'
'/var/log/audit/audit.log' -> '/root/testfile/audit.log'
'/var/log/anaconda/anaconda.log' -> '/root/testfile/anaconda.log'
'/var/log/anaconda/X.log' -> '/root/testfile/X.log'
'/var/log/anaconda/program.log' -> '/root/testfile/program.log'
'/var/log/anaconda/packaging.log' -> '/root/testfile/packaging.log'
'/var/log/anaconda/storage.log' -> '/root/testfile/storage.log'
'/var/log/anaconda/lvm.log' -> '/root/testfile/lvm.log'

我们可以看到,命令中使用了-exec 参数 后跟的是command命令,它的终止是以;(分号)来结束,所以这句话命令后面的分号是必不可少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠 “” 就是我们常说的转义符,其他的命令使用方法大体一致,自行摸索即可。

本文 Linux如何使用find命令将查找出来的文件删除或者复制到另一个位置? https://www.itwk.cc/post/1200.html 所涉及的内容均源自于网络。

不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。

访问和下载本站内容,说明您已同意上述条款。

本站为非盈利性站点,VIP功能仅仅作为用户喜欢本站捐赠打赏功能,本站不贩卖软件,所有内容不作为商业行为。

GeekShare的头像GeekShare超级赞助VIP管理员
上一篇 2024年3月23日 下午9:46
下一篇 2024年3月25日 下午4:53

相关推荐

公告:目前本站已完成整改,因更换主题的原因订单会丢失,如有问题请站内信私信我,谢谢!