tar常用参数&配合split进行文件分割
-c : 建立一个压缩文件的参数指令(create 的意思)
-C : --directory DIR 转到指定的目录
-f : --file 指定存档或设备(指定档名,注意:在 f 之后要立即接档名、不要再加参数,否则非法)
Use archive file or device F (default “-”, meaning stdin/stdout).
Note that “/dev/stdout” is not equivalent to “-”.
Using “/dev/stdout” explicitly can lead to corrupted archive, especially when coupled with “-v”.
-p : --same-permissions | --preserve-permissions 展开所有保护信息(使用原文件的原来属性,属性不会依据使用者而变)
-t : --list 列出存档中文件的目录(查看文件列表)
-v : 压缩的过程中显示文件!这个常用,但不建议用在背景执行过程
-x : --extract | --get 从存档展开文件(解开文档中的一个指定压缩文件)
-y | --bzip2 | --bunzip2 用 bzip2 对存档压缩或解压
-z : --gzip | --ungzip 用gzip对存档压缩或解压
-Z : --compressv | --uncompress 用compress对存档压缩或解压
注意:对于tar命令而言,参数带和不带"-",效果一样。
#查看tar中的文件列表
tar -tvf a.tar.gz
#只想解压压缩包中的1个指定文件:
tar -xvpf a.tar.gz u01/files/a.txt
#只想解压压缩包中的1个指定文件到指定的目录下
tar -xvpf /mnt/soft/a.tar.gz var/lib/test.jar -C /home/temp/
#创建一个压缩文件(打包dir目录为一个压缩文件
tar -zcvf abc.tar.gz ./abc
tar -zcvf abc.tgz ./abc
如果不压缩只是打包:
tar -cvf abc.tar ./abc
#解压
tar -zxvf abc.tar.gz
tar -xvf dir.tar
#解压到指定目录
tar -zxvf abc.tar.gz -C ./aaa/
如果遇到目录或文件比较大时,可以结合split文件分割拆分多文件处理:
tar是文件打包工具,split是文件分割工具。如果打包后的单个文件可能超出文件系统支持的单个文件大小限制、或文件太大容易导致拷贝失败时,可以考虑分割成适合大小的文件包。
利用tar和split进行压缩、分割,再通过cat合并分割的文件解压还原,以及在管道”|”配合下的打包分割文件过程。
例如:我的.skype文件已经有35M之多了,现在需要压缩备份起来,直接用tar打包:
#压缩时指定单个文件的大小进行自动拆分为多文件:-b 指定分割大小,单位k,m,g
tar czvf - abc/ |split -b 100m - ./abc.tar.gz_
#也可以分为2步:先打包,再分割
tar czvf abc.tar.gz abc/
split -b 100m abc.tar.gz abc.tar.gz_ --verbose
会生成多个文件:
abc.tar.gz_aa
abc.tar.gz_ab
abc.tar.gz_ac
...
#分割文件合并&解压
cat abc.tar.gz_* |tar zxvf -
#也可以分两步:先把压缩包合并成一个文件,然后再解压:
cat abc.tar.gz_* > abc.tar.gz (也可以使用管道来合并: cat abc.tar.gz_* |tar -zxvf )
tar zxvf abc.tar.gz