linux系列(二十二):tar命令
1、命令格式
tar[必要参数][选择参数][文件]
2、命令功能
用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的
3、命令参数
必要参数: -A 新增压缩文件到已存在的压缩 -B 设置区块大小 -c 建立新的压缩文件 -d 记录文件的差别 -r 添加文件到已经压缩的文件 -u 添加改变了和现有的文件到已经存在的压缩文件 -x 从压缩的文件中提取文件 -t 显示压缩文件的内容 -z 支持gzip解压文件 -j 支持bzip2解压文件 -Z 支持compress解压文件 -v 显示操作过程 -l 文件系统边界设置 -k 保留原有文件不覆盖 -m 保留文件不被覆盖 -W 确认压缩文件的正确性 可选参数: -b 设置区块数目 -C 切换到指定目录 -f 指定压缩文件 --help 显示帮助信息 --version 显示版本信息
4、常见解包/压缩命令
(1)、.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(2)、.tar.gz和.tgz
解包:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
(3)、.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
(4)、.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
(5)、.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
5、简单实例
(1)、将文件打包成不同格式
命令:
tar -cvf t1.tar tar_test/ (仅打包,不压缩!)
tar -zcvf t2.tar.gz tar_test/ (打包后,以 gzip 压缩)
tar -jcvf t3.tar.bz2 tar_test/ (打包后,以 bzip2 压缩 )
输出:
felix@felix-computer:~/test$ ls tar_test/ 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt felix@felix-computer:~/test$ tar -cvf t1.tar tar_test/ tar_test/ tar_test/1.txt tar_test/2.txt tar_test/7.txt tar_test/5.txt tar_test/4.txt tar_test/6.txt tar_test/3.txt felix@felix-computer:~/test$ ls t1.tar tar_test felix@felix-computer:~/test$ tar -zcvf t2.tar.gz tar_test/ tar_test/ tar_test/1.txt tar_test/2.txt tar_test/7.txt tar_test/5.txt tar_test/4.txt tar_test/6.txt tar_test/3.txt felix@felix-computer:~/test$ ls t1.tar t2.tar.gz tar_test felix@felix-computer:~/test$ tar -jcvf t3.tar.bz2 tar_test/ tar_test/ tar_test/1.txt tar_test/2.txt tar_test/7.txt tar_test/5.txt tar_test/4.txt tar_test/6.txt tar_test/3.txt felix@felix-computer:~/test$ ls t1.tar t2.tar.gz t3.tar.bz2 tar_test felix@felix-computer:~/test$
(2)、查看tar包内有哪些内容
命令:
tar -tvf t1.tar
tar -ztvf t2.tar.gz
tar -jtvf t3.tar.bz2
输出:
felix@felix-computer:~/test$ tar -tvf t1.tar drwxr-xr-x felix/felix 0 2018-12-12 10:19 tar_test/ -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/1.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/2.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/7.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/5.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/4.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/6.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/3.txt felix@felix-computer:~/test$ tar -ztvf t2.tar.gz drwxr-xr-x felix/felix 0 2018-12-12 10:19 tar_test/ -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/1.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/2.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/7.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/5.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/4.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/6.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/3.txt felix@felix-computer:~/test$ tar -jtvf t3.tar.bz2 drwxr-xr-x felix/felix 0 2018-12-12 10:19 tar_test/ -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/1.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/2.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/7.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/5.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/4.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/6.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/3.txt felix@felix-computer:~/test
(3)、打包的时候排除某些文件
命令:
tar --exclude tar_test/1* -zcvf tt.tar.gz tar_test/tar_test/ (使用--exclude)
输出:
felix@felix-computer:~/test$ tar --exclude tar_test/1* -zcvf tt.tar.gz tar_test/tar_test/ tar_test/2.txt tar_test/7.txt tar_test/5.txt tar_test/4.txt tar_test/6.txt tar_test/3.txt felix@felix-computer:~/test$ ls tar_test/ 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt felix@felix-computer:~/test$ tar -ztvf tt.tar.gz drwxr-xr-x felix/felix 0 2018-12-12 10:19 tar_test/ -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/2.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/7.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/5.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/4.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/6.txt -rw-r--r-- felix/felix 0 2018-12-12 10:19 tar_test/3.txt felix@felix-computer:~/test$