vlambda博客
学习文章列表

Pro Linux 基础篇之压缩不同目录下的文件

01

准备测试文件

1. 在绝对路径"/tmp"(目录)下创建5个1M的文件,文件内容为随机数据。

mkdir -p /tmp/filesdd if=/dev/urandom bs=1M count=5 of=/tmp/files/tmp_random_filesplit -d -b 1M /tmp/files/tmp_random_file /tmp/files/tmp_random_file.rm -f /tmp/files/tmp_random_file



"/tmp/files"目录下,会自动生成如下文件:

tmp_random_file.00tmp_random_file.01tmp_random_file.02tmp_random_file.03 tmp_random_file.04


2. 在相对路径"prolinux/"(目录)下创建5个1M的文件,文件内容为随机数据:

cd ~mkdir -p prolinux/dd if=/dev/urandom bs=1M count=5 of=prolinux/prolinux_random_filesplit -d -b 1M prolinux/prolinux_random_file prolinux/prolinux_random_file.rm -f prolinux/prolinux_random_file


"~/prolinux"目录下,会自动生成如下文件:

prolinux_random_file.00prolinux_random_file.01prolinux_random_file.02prolinux_random_file.03prolinux_random_file.04




02

带路径打包

tar zcvf foo.tar.gz /tmp/files


"foo.tar.gz"内容列表如下:

tmp/files/tmp/files/tmp_random_file.03tmp/files/tmp_random_file.01tmp/files/tmp_random_file.00tmp/files/tmp_random_file.04tmp/files/tmp_random_file.02



Pro Linux 基础篇之压缩不同目录下的文件


03

不带路径打包

方法一:

cd /tmp/files/tar zcvf ~/foo.tar.gz tmp_random_file.*


方法二:

tar zcvf ~/foo.tar.gz -C /tmp/files/ tmp_random_file.*


"foo.tar.gz"内容列表如下:

tmp_random_file.00tmp_random_file.01tmp_random_file.02tmp_random_file.03tmp_random_file.04


第一种方法逻辑更简单,第二种方法一行搞定。我推荐在多数情况下使用第一种方法。



Pro Linux 基础篇之压缩不同目录下的文件


04

多目录打包

将以下文件打包到压缩文件"foo.tar.gz":

  • /tmp下的"files"目录及其文件

  • ~/prolinux目录下以"prolinux_random_file."开头的文件


tar zcvf ~/foo.tar.gz -C /tmp/ files/ -C ~/prolinux/ prolinux_random_file.{00..04}


或者


tar zcvf ~/foo.tar.gz -C /tmp/ files/ -C ~/prolinux/ .


!

Pro Linux 基础篇之压缩不同目录下的文件

 注意

使用"-C"参数时,不能使用"prolinux_random_file.*"这样的星号通配符。



"foo.tar.gz"内容列表如下:

files/tmp_random_file.00files/tmp_random_file.01files/tmp_random_file.02files/tmp_random_file.03files/tmp_random_file.04prolinux_random_file.00prolinux_random_file.01prolinux_random_file.02prolinux_random_file.03prolinux_random_file.04



Pro Linux 基础篇之压缩不同目录下的文件



05

归档文件和压缩文件的区别

归档文件只是把多个文件打包放一起,包文件大小更大。

压缩文件使用了压缩算法,包文件更小。


创建归档文件:"bar.tar",创建压缩文件:"foo.tar.gz"

tar vcf ~/bar.tar ~/prolinuxtar zvcf ~/foo.tar.gz ~/prolinux


查看两个文件大小,单位"kb":

du -sk ~/foo.tar.gz ~/bar.tar
5124/root/foo.tar.gz5132/root/bar.tar


可以明显看出"foo.tar.gz"(5124kb) 比"bar.tar"(5132kb)更小。


再看看两个文件类型信息:

file ~/foo.tar.gz ~/bar.tar


"foo.tar.gz"是zip压缩的,"bar.tar"仅仅是将文件打包。

/root/foo.tar.gz: gzip compressed data, from Unix, last modified: Mon Apr 6 14:48:30 2020/root/bar.tar: POSIX tar archive (GNU)



Pro Linux 基础篇之压缩不同目录下的文件


06

清理测试文件

rm -f ~/foo.tar.gz ~/bar.tarrm -rf prolinux /tmp/files



Pro Linux 基础篇之压缩不同目录下的文件


Pro Linux 基础篇之压缩不同目录下的文件

https://www.bilibili.com/video/BV1YV411H7zB

Pro Linux 基础篇之压缩不同目录下的文件


以上就是今天的内容,希望大家喜欢。


本文完~



往期回顾



— — E N D — —




Pro Linux 基础篇之压缩不同目录下的文件


觉得不错,点个再看吧~