tar命令 压缩和提取Linux中的文件

时间:2020-03-05 15:25:50  来源:igfitidea点击:

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档案和排除

我们使用--ExcludeGar选项来排除特定的文件扩展名或者文件扩展名单。
语法类似于以下:

$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:提取存档文件到磁盘。