bsdtar通常包含在libarchive-tools包中:
sudo apt update
sudo apt install libarchive-tools
安装后命令为bsdtar,有时也会安装为tar
sudo yum install libarchive
或从EPEL源安装:
sudo yum install epel-release
sudo yum install bsdtar
tar。可以通过tar --version查看是否是bsdtar(会显示"bsdtar"字样)。
bsdtar [选项] [文件...]
或使用快捷方式(如果安装为tar):
tar [选项] [文件...]
| 参数 | 说明 |
|---|---|
-c |
创建新的归档文件 |
-x |
从归档文件中解压文件 |
-t |
列出归档文件的内容 |
-f [文件] |
指定归档文件名 |
-z |
通过gzip过滤归档(压缩/解压.gz或.tgz) |
-j |
通过bzip2过滤归档(压缩/解压.bz2) |
-J |
通过xz过滤归档(压缩/解压.xz) |
--lzma |
通过lzma过滤归档 |
--zstd |
通过zstd过滤归档(压缩/解压.zst) |
-v |
详细模式,显示处理过程 |
-p |
保留文件权限和属性 |
-C [目录] |
切换到指定目录执行操作 |
-r |
向归档文件末尾追加文件 |
-u |
仅追加比归档中更新的文件 |
-k |
解压时不覆盖现有文件 |
--exclude |
排除匹配模式的文件 |
--format |
指定归档格式(支持tar、pax、cpio、shar等) |
--help |
显示帮助信息 |
创建tar归档:
bsdtar -cf archive.tar file1.txt file2.txt directory/
创建gzip压缩的tar归档:
bsdtar -czf archive.tar.gz /path/to/directory/
创建xz压缩的tar归档并显示详细过程:
bsdtar -cJvf archive.tar.xz /path/to/directory/
解压tar归档:
bsdtar -xf archive.tar
解压gzip压缩的tar归档:
bsdtar -xzf archive.tar.gz
解压到指定目录:
bsdtar -xzf archive.tar.gz -C /target/directory/
解压时不覆盖现有文件:
bsdtar -xzkf archive.tar.gz
列出tar归档内容:
bsdtar -tf archive.tar
列出压缩归档内容并显示详细信息:
bsdtar -tvzf archive.tar.gz
列出zip文件内容:
bsdtar -tf archive.zip
创建zip归档:
bsdtar --format=zip -cf archive.zip file1.txt file2.txt
解压zip文件:
bsdtar -xf archive.zip
列出7z文件内容:
bsdtar -tf archive.7z
解压rar文件(只读支持):
bsdtar -xf archive.rar
向归档追加文件:
bsdtar -rf archive.tar newfile.txt
创建归档时排除特定文件:
bsdtar -czf backup.tar.gz --exclude='*.tmp' --exclude='temp/' /home/user/
创建包含多个目录的归档:
bsdtar -czf backup.tar.gz -C /etc/ . -C /home/user/ .
bsdtar能自动检测大多数压缩格式:
bsdtar -xf archive.tar.gz # 自动检测gzip压缩
bsdtar -xf archive.tar.bz2 # 自动检测bzip2压缩
bsdtar -xf archive.tar.xz # 自动检测xz压缩
无需指定-z, -j, -J参数
将zip转换为tar.gz:
bsdtar -xf archive.zip -s '|^|extracted/|' --format=ustar | \
bsdtar -czf archive.tar.gz -C extracted/ .
使用zstd快速压缩(速度比gzip快,压缩比合理):
bsdtar -cf - /path/to/backup/ | zstd -T0 -o backup.tar.zst
在归档中搜索文件:
bsdtar -tf archive.tar.gz | grep "pattern"
| 特性 | bsdtar | GNU tar |
|---|---|---|
| 格式自动检测 | 优秀,自动识别多种压缩格式 | 有限,需要指定压缩参数 |
| 支持的格式 | tar, zip, 7z, rar(只读), cpio, ISO等 | 主要是tar格式,部分支持其他格式 |
| 语法简洁性 | 更简洁,参数顺序灵活 | 参数顺序有严格要求 |
| 跨平台兼容性 | 优秀,BSD/macOS/Linux一致 | 主要在Linux/GNU系统 |
| 默认安装 | macOS默认,Linux需单独安装 | 大多数Linux发行版默认 |
| 功能丰富性 | 基础功能完整 | 更多高级选项和功能 |
tar命令,让系统决定使用哪个实现--format参数可以强制指定归档格式