tar命令 压缩和提取Linux中的文件
tar是用于在Linux和Unix系统中创建和操作存档文件的命令行工具。
tar命令创建.tar存档文件,然后使用gzip或者bzip2压缩。
我们可以使用一个命令创建一个归档的压缩文件来获取.tar.gz文件或者.tar.bz2文件。
tar命令也可以用于提取存档文件。
让我们通过一些实际的例子来看看TAR命令。
1)创建.tar归档文件
要创建未压缩的tar(.tar),请使用tar命令使用-c选项如下:
$tar -cvf /path/to/foo.tar /path/to/foo/
其中'/path/to/foo.tar'是结果tar文件的位置,'/path/to/foo'是文件或者目录用作输入的位置。
例子
$tar -cvf powerlog.tar powerlog a powerlog $ls powerlog powerlog.tar
我们可以使用绝对路径而不是相对,如示例所示。
2)用tar创建.gz档案
使用tar创建'.gz`档案的命令语法是:
$tar -czvf /path/to/foo.tgz /path/to/foo/
其中'/path/to/foo.tgz'是目标压缩文件,'/path/to/foo /'是要压缩的源目录或者文件。
3)创建.bz2档案
选项-j
用于与.bz2档案合作。
$tar -cjvf /path/to/foo.tgz /path/to/foo/
4)创建.gz档案和排除
我们使用--Exclude
Gar选项来排除特定的文件扩展名或者文件扩展名单。
语法类似于以下:
$tar -czvf /path/to/foo.tgz --exclude=\*.{jpg,gif,png,wmv,flv,tar.gz,zip} /path/to/foo/.
5)使用tar在压缩上没有绝对路径
使用TAR进行压缩文件并且我们提供绝对路径时,压缩文件将在其元数据中具有完整路径,因此当我们提取内容时,它将在类似于传递的绝对路径中的目录中。
要避免这种情况,请添加。
在命令结束时。
$tar -zcvf /path/to/foo.tgz -C/path/to/foo .
6)焦音所有文件都开始特定字母
以"I"开头地创建当前目录中的所有内容的TAR存档。
# tar -cvf fullbackup.tar i* install.log install.log.syslog
7)将新文件添加到现有的tar存档
追加文件或者将新文件添加到现有的tar存档。
# tar --append --file=backup.tar anaconda-ks.cfg
上面的命令将在Backup.tar存档中添加anaconda-ks.cfg文件
8)添加两个带连接选项的存档文件
# tar --concatenate --file=backup.tar fullbackup.tar
上面的命令将utputbackup.tar的内容添加到backup.tar存档。
9)提取.tar归档文件
要提取一个经常具有扩展名为".tar"的未压缩归档,命令语法是:
$tar -xvf /path/to/foo.tar
其中/path/to/foo.tar是tar文件位置的绝对/相对路径。
例如
$tar -xvf powerlog.tar x powerlog/
10)提取.gz档案
要提取"A.GZ"档案,我们使用命令语法:
$tar -xzvf /path/to/foo.tgz
其中'/path/to/foo.tgz'是压缩文件的绝对或者相对路径。
11)提取.bz2档案
提取"bux2"存档的命令语法是
$tar -xjvf /path/to/foo.bz2
请注意,只要它用-j
选项压缩,我们可以通过.tgz文件。
tar将自动检测格式并解压缩。
12)在指定目录中提取一个.tar
要将TAR存档提取到特定目录,请使用"-C"选项来提供目标目录。
$tar -xvf /path/to/foo.tar -C /path/to/destination/
13)从TAR存档中提取文件
以下命令在"backup.tar"归档中提取"anaconda-ks.cfg"文件。
# tar --extract -vv --occurrence --file=./backup.tar anaconda-ks.cfg -rw-r--r-- root/root 766 2008-04-12 06:52:42 anaconda-ks.cfg
14)列出.gz档案的内容
假设我们只想在不提取它们的情况下查看.tgz
文件的内容,我们将使用命令语法:
$tar -ztvf /path/to/foo.tgz
只需用正确的.tgz文件的正确路径替换'/path/to/foo.tgz'
15)列表.bz2归档文件的内容
如果我们想只查看在不提取的情况下查看".bz2"`sachive的内容,请使用命令:
$tar -jtvf /path/to/foo.tgz
16)使用Tar命令保留符号链接
使用tar-cvhf
在生成Tar存档时保留我的符号链接(使用该选项"H")。
总结
很难记住tar命令的所有选项。
以下是常用的tar选项列表。
J
:用于通过BZIP2过滤存档。v
:以详细模式运行命令以显示存档文件的进度。f
:指定存档文件名。w
:用于验证存档文件。z
:通过gzip工具筛选存档。T
:这用于查看存档文件的内容。-c
:创建包含指定项目的新存档。-R
:用于添加或者更新使用文件或者目录-t
的现有存档:列表在stdout上存档的内容。-U
:如-R,但只有当它们具有比存档中的相应条目更新的修改日期时,才会添加新条目。-x
:提取存档文件到磁盘。