我是靠谱客的博主 动听狗,最近开发中收集的这篇文章主要介绍用反引号将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

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

最后

以上就是动听狗为你收集整理的用反引号将find查找出来的文件一次性用tar打包压缩的全部内容,希望文章能够帮你解决用反引号将find查找出来的文件一次性用tar打包压缩所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部