tar 指令 tape archive

警告
本文最后更新于 2023-10-22,文中内容可能已过时。

tar 指令 tape archive

Linux tar(英文全拼:tape archive)命令用于备份文件。tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。既可以压缩,也可以解压。

tar只负责打包,不负责压缩,压缩一般配合gizp来做。这就是为什么打包之后再压缩的后缀为tar.gz

1
tar [主选项+辅选项] 文件或者目录

主选项:

  • -c:创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。带了-z就是打包 + 压缩

  • -x:从档案文件中释放文件。相当于拆包。

  • -t:列出档案文件的内容,查看已经备份了哪些文件。

  • -r:向压缩归档文件末尾追加文件

  • -u:更新原压缩包中的文件

特别注意,在参数中, c/x/t/r/u 仅能存在一个!不可同时存在!

辅助选项:

  • -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩或解压?一般格式为xx.tar.gzxx.tgz

  • -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩或解压?一般格式为xx.tar.bz2  

  • -v :压缩的过程中显示文件!这个常用

  • -f :使用档名,请留意,在 f 之后要立即接打成的包名喔!中间不要再加其他参数!所以我们一般把他放到最后

  • -p :使用原文件的原来属性(属性不会依据使用者而变)

  • -C <目的目录>--directory=<目的目录>将输出切换到指定的目的目录。目的目录必须存在,不存在会报错

  • --exclude FILE:在压缩的过程中,不要将 FILE 打包!可使用 glob 风格通配符。

  • --delete:从备份文件中删除指定的文件。可使用 glob 风格通配符。


常规操作:

tar -czvf target/11.tar.gz aaa.txt bbb.txt ccc.txt:打包之后用用gzip命令压缩  

tar -czvf target/44.tar.gz source/:表示把整个目录全部打包压缩

tar -czvf target/55.tar.gz source/*:表示把目录下的所有文件打包压缩,不包括目录本身,此目录下的子目录也会默认递归,不需要参数

tar -tzvf target/11.tar.gz:查看包里面内容

tar -xzvf target/11.tar.gz -C source:拆包,指定拆到到 source 目录下,目录不存在会报错

你还可以只拆某几个特定的文件出来

tar只是一个打包命令,你可以只打包,不压缩,那样的话,你就可以不带跟压缩相关的命令(-z-j 等),只打包的话,文件拓展名为.tar即可

tar -cvf target/22.tar aaa.txt bbb.txt ccc.txt

tar -xvf target/22.tar -C source0:拆包,指定拆到到 source0 目录下,注意,目标文件目录必须存在,否则报错

注意,不带参数 -z,可以查看和拆包压缩过后的文件和仅打包未压缩的文件(.tar.tar.gz),但是带上了-z,就只能操作压缩过后的文件(.tar.gz,否则会报错

而且,压缩之后,无法再往包中添加文件或者更新文件或者删除文件。只能将压缩包用gunzip(或者gzip -d)解压成tar,然后再用tar操作

如何往 tar 包中追加文件呢?

tar -rvf target/22.tar eee.txt

更新文件就是覆盖包中的文件

tar -uvf target/22.tar bbb.txt

删除文件就是

tar -vf target/22.tar  --delete ddd.txt

0%