一、基本用法
1. 创建归档文件
-
tar cf example.tar file_1 file_2 file_n
-
c
=creat
-
f
=file=ARCHIVE
-
把命令选项翻译成日常用语:
cf
= create a ARCHIVE file = 创建一个归档文件。
2. 创建并压缩归档文件
在 Linux 系统上,归档和压缩是两个不同的工作,归档的文件可以被压缩,也可以不压缩,这一点与 Windows 系统不同。Windows 常见的归档方式是通过 7zip/WinRAR 这类压缩解压软件把一系列文件压缩成单个文件,归档和压缩其实是同一件事。
-
tar czf example.tar.gz file_1 file_2 file_n
-
z
=gzip
-
-
tar cjf example.tar.bz2 file_1 file_2 file_n
-
j
=bzip2
-
把命令选项翻译成日常用语:
czf
= create a gzipped ARCHIVE file = 创建一个 gzip 压缩的归档文件。
3. 列出归档文件内容
-
tar tf example.tar
-
t
=list
-
4. 提取归档文件内容
-
tar xf example.tar
-
x
=extract
-
tar xzf example.tar.gz
tar xjf example.tar.bz2
5. 模式与选项
tar
命令的参数有模式
和选项
的分别,模式
参数必须写在选项
参数前面。
参数 | 模式 | 选项 |
---|---|---|
-c |
yes | |
-t |
yes | |
-x |
yes | |
-f |
yes | |
-j |
yes | |
-z |
yes |
二、高级用法
-
find . -iname 'file-a' | tar czf example.tar.gz --files-from=-
-
--files-from=
也可以简写成-T
,在-c
模式下表示「根据指定的文件创建归档文件」。 - 末尾的减号
-
非常重要,也很常见,用来表示标准输入/输出
,在这里具体指find
命令查找到的文件清单。
-
三、Tips
如何查找一个命令的某个指定选项的用法,比如:tar -T
?
man tar
-
/^ *-T
:-
/
表示「开始查找」,和vim
里一样 -
^
表示「从每一行的行首开始」,和正则表达式一样 - 注意,第三个字符是
空格 space
-
*
是通配符 -
-T
是需要查找的选项
-
这个方法有局限,只有选项或参数位于一行的行首才有效,像 tar --files-from
这个选项就查不到,因为它所在的行是这样的:-T, --files-from=FILE
。