使用tar命令压缩和解压

tar压缩与解压

在Linux中tar命令经常被用来创建.tar.gz.tg文档,亦称“tarballs”。GNU tar命令有集成了压缩功能。它可以用一行命令建立.tar文档然后用gzipbzip2压缩,这就为什么有了文件.tar.gz.tar.bz2

压缩整个目录或一个文件

tar -czvf name-of-archive.tar.gz /path/to/directory-or-file

  • -c: 建立一个文档
  • -z: 用gzip压缩文档
  • -v: 生成文档时在终端显示进度
  • -f: 允许定义文档文件名

一次压缩多个目录或文件

若想将多个目录或文件压缩,只需要提供文件夹或文件列表。

tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt

排除目录或文件

有时需要压缩整个目录,并排除其中的特定文件和目录。可在后面加上--exclude选项。

tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache

用bzip2替代压缩

bzip2压缩文档时经常将文件命名为.tar.bz2.tbz。只需要用-j替代-z

tar -cjvf archive.tar.bz2 stuff

解压文档

-x替代-c,就是解压了。若想将文件解压到特定文件夹,用-C选项,后面跟上目标文件夹。

tar -xzvf archive.tar.gz -C /tmp

若文档是bzip2压缩文件,将z换为j,如:

tar -xjvf archive.tar.bz2 -C /tmp

来源:
https://www.howtogeek.com/248780/how-to-compress-and-extract-files-using-the-tar-command-on-linux/

1 个赞

谢谢LZ分享经验,一直记不住压缩包命令
很久以前把在bashrc里设定了相关的alias,但反而助长了懒惰,更加记不住了

# `lrz7`:
#   - pros: slightly better compress ratio, lower memory consumption
#   - cons: slow unpack
# `xz9`:
#   - pros: fast unpack
#   - cons: slightly worse compress ratio, higher memory consumption

tarlrz7 () {
    lrztar -z $1
}

tarxz9 () {
    tar -cf - $1 | xz --verbose -9 -c - > ${1%/}.tar.xz
}

另外lrz压缩文本文件特别有效