tar
用来打包、解压文件。
输入 tar --help
查看,
user@server:~/linux_code/test_tar$ tar --help
用法: tar [选项...] [FILE]...
GNU 'tar' saves many files together into a single tape or disk archive, and can
restore individual files from the archive.
Examples:
tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.
tar -tvf archive.tar # List all files in archive.tar verbosely.
tar -xf archive.tar # Extract all files from archive.tar.
按照 Examples 的例子,够用了 ~
打包
tar -cf archive.tar foo bar
将 foo 、bar 打包成 archive.tar 。
如果要全部打包就用 tar -cf archive.tar *
,文件、文件夹都会打包。
示例,
user@server::~/linux_code/test_tar$ tree
.
├── dir1
│ ├── dir11
│ │ └── dir11_text.txt
│ └── dir1_text.txt
├── dir2
│ ├── dir22
│ │ └── dir222
│ │ └── dir222_text.txt
│ └── dir2_text.txt
├── file_1.txt
├── file_2.txt
├── file_3.txt
├── file_4.txt
└── file_5.txt
5 directories, 9 files
user@server::~/linux_code/test_tar$ tar -cf file.tar file_1.txt file_2.txt file_3.txt file_4.txt file_5.txt
不解压查看压缩包内容
tar -tf archive.tar
不解压,查看 archive.tar 的内容,只显示压缩包里的文件名。
tar -tvf archive.tar
不解压,查看 archive.tar 的内容,列出压缩包里的文件的详细内容。
接上面的示例,不解压,直接查看压缩包内容
user@server:~/linux_code/test_tar$ tar -cf file.tar file_1.txt file_2.txt file_3.txt file_4.txt file_5.txt
user@server:~/linux_code/test_tar$ tree
.
├── dir1
│ ├── dir11
│ │ └── dir11_text.txt
│ └── dir1_text.txt
├── dir2
│ ├── dir22
│ │ └── dir222
│ │ └── dir222_text.txt
│ └── dir2_text.txt
├── file_1.txt
├── file_2.txt
├── file_3.txt
├── file_4.txt
├── file_5.txt
└── file.tar
5 directories, 10 files
user@server:~/linux_code/test_tar$ tar -tf file.tar
file_1.txt
file_2.txt
file_3.txt
file_4.txt
file_5.txt
user@server:~/linux_code/test_tar$
解压
tar -xf archive.tar
把 archive.tar 解压到当前文件夹
tar -xf file.tar -C dir_exist/
把 archive.tar 解压到已经存在的文件夹 dir_exist/
gzip
使用gzip 压缩
使用 gzip 压缩,生成的压缩文件占用较小。
tar -zcvf newfile.tar.gz vendor/partner_gms/apps
打包 vendor/partner_gms/apps 目录下的所有文件和子目录,使用 gzip 压缩,生成名为 newfile.tar.gz 的归档文件。
- -z :使用 gzip 进行压缩。
- -c :创建新的归档文件。
- -v :详细输出,列出被添加到归档中的文件。
- -f :指定归档文件的名称为 newfile.tar.gz 。
user@zn:~/code$ du -sh vendor/partner_gms/apps/
8.2G vendor/partner_gms/apps/
du -sh
查看,目录占用 8.2G ,
使用 tar -cvf
newfile.tar vendor/partner_gms/apps 生成的 newfile.tar 文件是 8.2G 。
使用 tar -zcvf
newfile.tar.gz vendor/partner_gms/apps 生成的 newfile.tar.gz 文件是 4.1G 。
解压被 gzip 压缩的文件
解压被 gzip 压缩 newfile.tar.gz 文件,并在当前目录下恢复其中包含的文件和目录。
tar -zxvf newfile.tar.gz