tar 指令 tape archive
tar 指令 tape archive
Linux tar(英文全拼:tape archive)命令用于备份文件。tar
是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。既可以压缩,也可以解压。
tar
只负责打包,不负责压缩,压缩一般配合gizp
来做。这就是为什么打包之后再压缩的后缀为tar.gz
。
|
|
主选项:
-
-c
:创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。带了-z
就是打包 + 压缩 -
-x
:从档案文件中释放文件。相当于拆包。 -
-t
:列出档案文件的内容,查看已经备份了哪些文件。 -
-r
:向压缩归档文件末尾追加文件 -
-u
:更新原压缩包中的文件
特别注意,在参数中, c/x/t/r/u
仅能存在一个!不可同时存在!
辅助选项:
-
-z
:是否同时具有gzip
的属性?亦即是否需要用gzip
压缩或解压?一般格式为xx.tar.gz
或xx.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