1. tar简介
/wiki/Tar
Unix和类Unix系统上的压缩打包工具,可以将多个文件合并为一个文件,打包后的文件名亦为“tar”。目前,tar文件格式已经成为POSIX标准,最初是POSIX.1-1988,目前是POSIX.1-2001。本程序最初的设计目的是将文件备份到磁带上(tape archive),因而得名tar。
2. tar文件
tar代表未压缩的tar文件。已压缩的tar文件则附加压缩文件的扩展名,如经过gzip压缩后的tar文件,扩展名为“.tar.gz”。
由于受到DOS8.3文件名格式的限制,常使用下列缩写:
tar选项
缩写后缀
完整后缀
压缩命令
解压命令1
解压命令2
-j,
*.tb2; tbz
*.tar.bz2; *.tar.bz
bzip2 -z
bzip2 -d
bunzip2
-z,
*.tgz
*.tar.gz
gzip
gzip -d
gunzip
-Z,
*.taz
*.tar.Z
compress
uncompress
-J,
*.txz
*.tar.xz
--lzma
*.tlz
*.tar.lzma
3. tar常用选项
主要操作方式:
-c,
--create
创建一个新的存档
-t,
--list
列出档案的内容
-x,
--extract, --get
从存档中提取文件
-r,
--append
将文件附加到存档的末尾
-u,
--update
只附加比归档中的副本更新的文件
-A,
--catenate, --concatenate
将tar文件作为整体追加到另一个tar文件中
-d,
--diff, --compare
找到存档和文件系统之间的差异
--delete
从档案中删除(不在磁带上!)
--test-label
测试存档卷标并退出
压缩选项:
-j,
--bzip2
通过bzip2过滤存档
-z,
--gzip, --gunzip, --ungzip
通过gzip过滤存档
-Z,
--compress, --uncompress
通过压缩过滤存档
-J,
--xz
通过xz过滤存档
--lzma
通过lzma过滤存档
--lzip
通过lzip过滤存档
--lzop
通过lzop过滤存档
--zstd
通过zstd过滤存档
-a,
--auto-compress
使用存档后缀来确定压缩程序
--no-auto-compress
不要使用存档后缀来确定压缩程序
其他常用选项:
Device selection and switching:
-f,
--file=ARCHIVE
使用存档文件或设备存档.
可以用"-"代表标准输出或标准输入。
Informative output:
-v,
--verbose
详细列出已处理的文件
Overwrite control:
-k,
--keep-old-files
提取时不要替换现有文件,将它们视为错误
Local file selection:
-P,
--absolute-names
不要从文件名中删除前导'/'。即绝对路径。
4. tar基本用法
不压缩
-c 打包 $ tar -cvf archive.tar file1 file2
-t 查看 $ tar -tvf archive.tar
-x 解包 $ tar -xvf archive.tar
增加压缩,只需要参照上面的选项,添加对应的压缩选项即可。
5. tar特殊用法
使用tar复制文件夹
$ tar cf – toma | (cd targer; tar xvf -)
高效的复制了toma中的文件和目录,还保留了权限。注: 'f'后边跟'-',从stdin读取数据.
解开C源码包的注意事项
软件源码包,通常是tar的压缩包。解包前先用tvf选项+压缩选项检查源码包内容。
1. 有些源码包解开时不会建立自己的总目录,会把全部放到当前目录下。这种要进入手动建立的文件夹后再解包。
2. 要留意那些包含绝对路径名的文件。可能包含木马或一些恶意代码。