Linux-tar
1. tar简介
2. tar文件
3. tar常用选项
4. tar基本用法(不压缩)
5. tar特殊用法
1. tar简介
https://zh.wikipedia.org/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. 要留意那些包含绝对路径名的文件。可能包含木马或一些恶意代码。