Pro Linux 基础篇之压缩不同目录下的文件
01
准备测试文件
1. 在绝对路径"/tmp"(目录)下创建5个1M的文件,文件内容为随机数据。
mkdir -p /tmp/files
dd if=/dev/urandom bs=1M count=5 of=/tmp/files/tmp_random_file
split -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.00
tmp_random_file.01
tmp_random_file.02
tmp_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_file
split -d -b 1M prolinux/prolinux_random_file prolinux/prolinux_random_file.
rm -f prolinux/prolinux_random_file
在"~/prolinux"目录下,会自动生成如下文件:
prolinux_random_file.00
prolinux_random_file.01
prolinux_random_file.02
prolinux_random_file.03
prolinux_random_file.04
02
带路径打包
tar zcvf foo.tar.gz /tmp/files
"foo.tar.gz"内容列表如下:
tmp/files/
tmp/files/tmp_random_file.03
tmp/files/tmp_random_file.01
tmp/files/tmp_random_file.00
tmp/files/tmp_random_file.04
tmp/files/tmp_random_file.02
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.00
tmp_random_file.01
tmp_random_file.02
tmp_random_file.03
tmp_random_file.04
第一种方法逻辑更简单,第二种方法一行搞定。我推荐在多数情况下使用第一种方法。
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/ .
!
注意
使用"-C"参数时,不能使用"prolinux_random_file.*"这样的星号通配符。
"foo.tar.gz"内容列表如下:
files/tmp_random_file.00
files/tmp_random_file.01
files/tmp_random_file.02
files/tmp_random_file.03
files/tmp_random_file.04
prolinux_random_file.00
prolinux_random_file.01
prolinux_random_file.02
prolinux_random_file.03
prolinux_random_file.04
05
归档文件和压缩文件的区别
归档文件只是把多个文件打包放一起,包文件大小更大。
压缩文件使用了压缩算法,包文件更小。
创建归档文件:"bar.tar",创建压缩文件:"foo.tar.gz"
tar vcf ~/bar.tar ~/prolinux
tar zvcf ~/foo.tar.gz ~/prolinux
查看两个文件大小,单位"kb":
du -sk ~/foo.tar.gz ~/bar.tar
5124/root/foo.tar.gz
5132/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)
06
清理测试文件
rm -f ~/foo.tar.gz ~/bar.tar
rm -rf prolinux /tmp/files
https://www.bilibili.com/video/BV1YV411H7zB
以上就是今天的内容,希望大家喜欢。
本文完~
往期回顾
— — E N D — —
觉得不错,点个再看吧~