用反引号将find查找出来的文件一次性用tar打包压缩

1、查找/var目录下所有.log后缀的文件

[root@CentOS-01 20220730 11:01 ~]# find /var -name "*.log" -type f
/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/ifcfg.log
/var/log/anaconda/ks-script-IA1Ytv.log
/var/log/anaconda/ks-script-tCHWYK.log
/var/log/anaconda/journal.log
/var/log/boot.log
/var/log/vmware-vmsvc.log
/var/log/yum.log
/var/log/vmware-network.3.log
/var/log/vmware-network.2.log
/var/log/vmware-network.1.log
/var/log/vmware-network.log

2、使用管道和xargs参数过滤器将find查找出来的文件一次性打包压缩

[root@CentOS-01 20220730 11:02 ~]# find /var -name "*.log" -type f | xargs tar -zcf var-log-01.tar.gz 
tar: 从成员名中删除开头的“/”
[root@CentOS-01 20220730 11:09 ~]# ll
总用量 244
-rw-------. 1 root root   1304 7月  29 20:22 anaconda-ks.cfg
-rw-r--r--  1 root root 242610 7月  30 11:09 var-log-01.tar.gz

注意此处不能exec将find命令的结果交给tar来打包执行,当文件不止一个时,因为结果一个个传递打包,到最后打包压缩的只有最后一个find出来的文件!如下:可看到两条命令打包出来的文件大小差别非常大,就是因为exec传递执行tar命令最后只打包压缩了一个文件,其他都被最后一个覆盖了。

[root@CentOS-01 20220730 11:09 ~]# find /var -name "*.log"  -exec tar -zcf test.tar.gz {} \;
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
[root@CentOS-01 20220730 11:19 ~]# ll -h
总用量 248K
-rw-------. 1 root root 1.3K 7月  29 20:22 anaconda-ks.cfg
-rw-r--r--  1 root root  391 7月  30 11:19 test.tar.gz
-rw-r--r--  1 root root 237K 7月  30 11:09 var-log-01.tar.gz

 

4、或者采用反引号``来将find命令提前执行完成后用tar进行打包压缩,这是一个更简易的方法

[root@CentOS-01 20220730 11:19 ~]# tar -zcf var-log-02.tar.gz `find /var -name "*.log" -type f`
tar: 从成员名中删除开头的“/”
[root@CentOS-01 20220730 11:24 ~]# ll -h
总用量 488K
-rw-------. 1 root root 1.3K 7月  29 20:22 anaconda-ks.cfg
-rw-r--r--  1 root root  391 7月  30 11:19 test.tar.gz
-rw-r--r--  1 root root 237K 7月  30 11:09 var-log-01.tar.gz
-rw-r--r--  1 root root 237K 7月  30 11:24 var-log-02.tar.gz

 反引号``还真的是个好东西哈。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值