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. 要留意那些包含绝对路径名的文件。可能包含木马或一些恶意代码。