tar
命令是Linux中最常用的命令之一,用于打包和解包文件。本文将详细介绍tar
命令的用法,并给出具体的示例。
1. 基本语法
tar
的基本语法如下:
tar [options] [file...]
[options]
:可选参数,用于控制打包或解包行为。[file...]
:要打包或解包的文件名。
2. 常用选项
2.1 -c
创建一个新的归档文件。
示例:
创建名为archive.tar
的新归档文件:
tar -c archive.tar file1 file2
2.2 -x
从归档文件中提取文件。
示例:
从archive.tar
归档文件中提取文件:
tar -xvf archive.tar
2.3 -t
列出归档文件中的内容。
示例:
列出archive.tar
归档文件中的内容:
tar -tvf archive.tar
2.4 -r
将文件添加到已存在的归档文件中。
示例:
将file3
添加到archive.tar
归档文件中:
tar -rvf archive.tar file3
2.5 -u
更新归档文件中的文件。
示例:
更新archive.tar
归档文件中的文件file1
:
tar -uvf archive.tar file1
2.6 -a
使用归档文件的后缀来选择压缩方式。
示例:
使用.tar.gz
后缀创建压缩归档文件:
tar -caf archive.tar.gz file1 file2
2.7 -z
使用gzip压缩归档文件。
示例:
使用gzip压缩创建名为archive.tar.gz
的归档文件:
tar -czvf archive.tar.gz file1 file2
2.8 -j
使用bzip2压缩归档文件。
示例:
使用bzip2压缩创建名为archive.tar.bz2
的归档文件:
tar -cjvf archive.tar.bz2 file1 file2
2.9 -J
使用xz压缩归档文件。
示例:
使用xz压缩创建名为archive.tar.xz
的归档文件:
tar -cJvf archive.tar.xz file1 file2
2.10 -f
指定归档文件名。
示例:
指定归档文件名为archive.tar
:
tar -cvf archive.tar file1 file2
2.11 -v
详细模式,显示打包或解包的过程。
示例:
详细模式创建名为archive.tar
的归档文件:
tar -cvvf archive.tar file1 file2
2.12 -p
保留文件权限。
示例:
保留文件权限创建名为archive.tar
的归档文件:
tar -cpvf archive.tar file1 file2
2.13 -P
允许使用绝对路径。
示例:
允许使用绝对路径创建名为archive.tar
的归档文件:
tar -cpvf archive.tar /path/to/file1 /path/to/file2
2.14 -m
保留符号链接的目标。
示例:
保留符号链接的目标创建名为archive.tar
的归档文件:
tar -cpvmf archive.tar file1 file2
2.15 -X
指定文件列表,只打包列表中的文件。
示例:
使用files.lst
文件中的文件列表创建名为archive.tar
的归档文件:
tar -cpvf archive.tar -X files.lst
2.16 -W
验证文件的校验和。
示例:
验证文件的校验和,创建名为archive.tar
的归档文件:
tar -cpWvf archive.tar file1 file2
2.17 -k
在解包时保留原有文件。
示例:
在解包archive.tar
时保留原有文件:
tar -xvkf archive.tar
2.18 -R
解包时不覆盖已有文件。
示例:
解包archive.tar
时不覆盖已有文件:
tar -xRvf archive.tar
2.19 --directory=DIR
在指定目录中创建归档文件。
示例:
在/backup
目录中创建名为archive.tar
的归档文件:
tar --directory=/backup -cvf archive.tar file1 file2
2.20 --exclude=PATTERN
排除匹配模式的文件。
示例:
排除名为temp*
的文件,创建名为archive.tar
的归档文件:
tar -cvf archive.tar --exclude=temp* file1 file2
2.21 --exclude-from=FILE
从指定文件中读取排除模式。
示例:
从exclude.lst
文件中读取排除模式,创建名为archive.tar
的归档文件:
tar -cvf archive.tar --exclude-from=exclude.lst file1 file2
2.22 --no-overwrite-dir
不覆盖目录。
示例:
不覆盖目录,创建名为archive.tar
的归档文件:
tar -cvf archive.tar --no-overwrite-dir file1 file2
2.23 --version
显示版本信息。
示例:
显示tar
命令的版本信息:
tar --version
2.24 --help
显示帮助信息。
示例:
显示tar
命令的帮助信息:
tar --help
3. 实战案例
3.1 创建归档文件
创建名为archive.tar
的新归档文件,包含file1
和file2
:
tar -cvf archive.tar file1 file2
3.2 从归档文件中提取文件
从archive.tar
归档文件中提取文件:
tar -xvf archive.tar
3.3 列出归档文件中的内容
列出archive.tar
归档文件中的内容:
tar -tvf archive.tar
3.4 将文件添加到已存在的归档文件
将file3
添加到archive.tar
归档文件中:
tar -rvf archive.tar file3
3.5 更新归档文件中的文件
更新archive.tar
归档文件中的文件file1
:
tar -uvf archive.tar file1
3.6 使用gzip压缩创建归档文件
使用gzip压缩创建名为archive.tar.gz
的归档文件:
tar -czvf archive.tar.gz file1 file2
3.7 使用bzip2压缩创建归档文件
使用bzip2压缩创建名为archive.tar.bz2
的归档文件:
tar -cjvf archive.tar.bz2 file1 file2
3.8 使用xz压缩创建归档文件
使用xz压缩创建名为archive.tar.xz
的归档文件:
tar -cJvf archive.tar.xz file1 file2
3.9 保留文件权限创建归档文件
保留文件权限创建名为archive.tar
的归档文件:
tar -cpvf archive.tar file1 file2
3.10 允许使用绝对路径创建归档文件
允许使用绝对路径创建名为archive.tar
的归档文件:
tar -cpvf archive.tar /path/to/file1 /path/to/file2
3.11 保留符号链接的目标创建归档文件
保留符号链接的目标创建名为archive.tar
的归档文件:
tar -cpvmf archive.tar file1 file2
3.12 使用文件列表创建归档文件
使用files.lst
文件中的文件列表创建名为archive.tar
的归档文件:
tar -cpvf archive.tar -X files.lst
3.13 在指定目录中创建归档文件
在/backup
目录中创建名为archive.tar
的归档文件:
tar --directory=/backup -cvf archive.tar file1 file2
3.14 排除特定文件创建归档文件
排除名为temp*
的文件,创建名为archive.tar
的归档文件:
tar -cvf archive.tar --exclude=temp* file1 file2
3.15 解包时不覆盖已有文件
解包archive.tar
时不覆盖已有文件:
tar -xRvf archive.tar
3.16 从指定文件中读取排除模式创建归档文件
从exclude.lst
文件中读取排除模式,创建名为archive.tar
的归档文件:
tar -cvf archive.tar --exclude-from=exclude.lst file1 file2
请注意,某些命令的选项和语法可能会因不同的Linux发行版和版本而略有不同,请根据实际情况调整命令的具体细节。