tar压缩命令最全通用语法

当涉及到在 Unix 和类 Unix 系统中进行文件归档和压缩时,tar 命令是一个非常有用的工具。它用于创建归档文件,通常称为 “tarball”,这些文件可以包含一个或多个文件和目录,并且可以选择是否对这些文件进行压缩。
以下是一些关于 tar 命令的基本用法和选项:

  1. 创建归档文件:
    使用 tar 命令创建一个归档文件,不进行压缩:
tar -cvf archive.tar file1.txt file2.txt dir1/
  1. 解压归档文件:
    使用 tar 命令解压一个归档文件:
tar -xvf archive.tar
  1. 创建并压缩归档文件:
    使用 tar 命令创建一个归档文件,并对其进行 gzip 压缩:
tar -czvf archive.tar.gz file1.txt file2.txt dir1/
  1. 解压并解压缩归档文件:
    使用 tar 命令解压并解压缩一个归档文件:
tar -xzvf archive.tar.gz
  1. 查看归档内容:
    使用 tar 命令查看归档文件中的内容,不提取文件:
tar -tvf archive.tar
  1. 指定目标目录:
    使用 -C 选项来指定解压或提取文件的目标目录:
tar -xvf archive.tar -C /path/to/target_directory
  1. 仅提取部分文件:
    使用 --extract(或 -e)选项来提取归档文件中的特定文件:
tar -xvf archive.tar --extract file1.txt
  1. 常见选项解释:
  • -c:创建归档文件。
  • -x:提取归档文件。
  • -v:显示操作详细信息。
  • -f:指定归档文件的名称。
  • -z:使用 gzip 进行压缩(需要用 .tar.gz 扩展名)。
  • -j:使用 bzip2 进行压缩(需要用 .tar.bz2 扩展名)。
  • -C:指定解压缩的目标目录。
  1. 仅压缩文件,不创建归档:
    如果你只想压缩一个或多个文件,而不创建归档,可以使用 -z 选项:
tar -czvf compressed.tar.gz file1.txt file2.txt
  1. 添加文件到现有归档:
    使用 --append(或 -r)选项可以将文件添加到现有的归档中:
tar -rvf archive.tar newfile.txt
  1. 从归档中删除文件:
    使用 --delete 选项可以从归档中删除文件:
tar --delete -f archive.tar file1.txt
  1. 压缩级别设置:
    如果你在使用 -z(gzip)或 -j(bzip2)选项进行压缩时想要设置压缩级别,可以使用 -#,其中 # 是 1 到 9 之间的数字,数字越大表示压缩级别越高。例如:
tar -czvf archive.tar.gz -9 file1.txt file2.txt
  1. 排除文件或目录:
    使用 --exclude 选项可以在创建归档时排除特定的文件或目录。这在制作备份时很有用:
tar -czvf backup.tar.gz --exclude=*.log directory/
  1. 利用 **find** 和管道(Pipe):
    你可以与 find 命令结合使用 tar 命令,以便在创建归档时根据条件选择文件:
find /path/to/source -type f -name "*.txt" | tar -czvf archive.tar.gz -T -
  1. 使用 **tar** 的短选项:
    在许多情况下,你可以使用 tar 的短选项来缩短命令。例如,-xzvf 可以缩写为 -xvzf

  2. 显示进度信息:
    通过使用 --checkpoint 选项,可以显示归档或提取的进度信息。这对于大型归档操作很有用:

tar -czvf archive.tar.gz --checkpoint=1 file1.txt file2.txt
  1. 保留文件权限和所有者信息:
    默认情况下,tar 会保留文件的权限和所有者信息。如果你需要显式地指定,可以使用 --same-permissions--same-owner 选项:
tar -czvf archive.tar.gz --same-permissions --same-owner file1.txt file2.txt
  1. 备份目录结构:
    如果你只想备份目录的结构,而不复制实际文件,可以使用 --directory 选项:
tar -cvf directory_structure.tar --directory=/path/to/source directory/
  1. 创建并加密归档文件:
    使用 openssltar 可以创建并加密归档文件,以保护其内容:
tar -cvf - file1.txt file2.txt dir1/ | openssl enc -aes-256-cbc -e > encrypted.tar
  1. 解密并解压归档文件:
    要解密并解压加密的归档文件,可以使用以下命令:
openssl enc -aes-256-cbc -d -in encrypted.tar | tar -xvf -
  1. 选择特定的压缩工具:
    默认情况下,tar 会根据文件名后缀自动选择压缩工具。但是你也可以使用 -a 选项手动选择压缩工具,例如:
tar -cavf archive.tar.xz file1.txt file2.txt
  1. 压缩与解压特定目录:
    你可以在压缩和解压时使用 -C 选项来指定特定的目录,以避免在归档中创建不必要的目录层次:
tar -czvf archive.tar.gz -C /path/to/source/ directory/
tar -xzvf archive.tar.gz -C /path/to/target/
  1. 指定压缩格式:
    默认情况下,tar 会根据文件扩展名选择压缩格式。你也可以通过使用 -a--auto-compress 选项,让 tar 根据文件扩展名自动选择适当的压缩格式:
tar -cvaf archive.tar.xz file1.txt file2.txt
  1. 显示压缩进度:
    如果你想在压缩过程中显示进度信息,可以使用 --checkpoint-action 选项。以下示例每压缩 100 个块时显示进度:
tar -czvf archive.tar.gz --checkpoint-action='echo=%u' file1.txt file2.txt
  1. 将标准输出传递给另一个命令:
    你可以将 tar 命令的输出传递给另一个命令,这在创建自定义归档或备份脚本时很有用。例如,将归档直接传递给 ssh
tar -czvf - file1.txt file2.txt | ssh user@host "cat > archive.tar.gz"
  1. 备份整个文件系统:
    注意,备份整个文件系统可能需要 root 权限,并且需要谨慎操作。你可以使用下面的命令来备份整个文件系统:
sudo tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz -- /
  1. 解压特定文件到标准输出:
    你可以将解压的特定文件直接输出到终端,而不实际提取文件:
tar -xOf archive.tar file1.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值