如何归档Linux中的文件和目录

时间:2020-03-21 11:44:06  来源:igfitidea点击:

在我们以前的教程中,我们讨论了如何使用GZIP和BZIP2程序压缩和解压缩文件。

在本教程中,我们将学习如何在Linux中归档文件和目录。
归档和压缩相同吗?
有些人通常认为这些术语是指相同的含义。
但是,两者都完全不同。
归档是将多个文件和目录(相同或者不同大小)的过程中的过程中的一个文件。
另一方面,压缩是减少文件或者目录的大小的过程。
归档通常用作系统备份的一部分或者将数据从一个系统移动到另一个系统时。
希望我们了解归档和压缩之间的差异。

Linux中的存档文件和目录

归档文件和目录的最常见程序是;

  • tar
  • zip

使用tar命令归档文件和目录

tar是一个unix命令,它代表磁带存档。
它用于将多个文件(相同或者不同大小)组合到单个文件中。
TAR实用程序中有4种主要操作模式。

  • c - 从文件或者目录创建存档。
  • X - 提取存档。
  • r - 将文件追加到存档的末尾。
  • t - 列出存档的内容。

有关模式的完整列表,请参阅手册页。

创建一个新的档案

出于本教程的目的,我将使用包含三种不同类型的文件的名为OniTor的文件夹。

$ls theitroad/
file.odt image.png song.mp3

现在,让我们创建一个新的tar存档oniToroad目录。

$tar cf theitroad.tar theitroad/

其中C国旗是指创建新归档,f引用文件名。

同样,要从当前工作目录中的一组文件中创建存档,请使用此命令:

$tar cf archive.tar file1 file2 file 3

提取文件

要在当前目录中提取存档,只需执行以下操作:

$tar xf theitroad.tar

我们还可以使用C标志(大写字母C)在不同目录中提取存档。
例如,以下命令在下载目录中提取给定的存档文件。

$tar xf theitroad.tar -C Downloads/

或者,转到下载文件夹,然后将其提取在下面的内部。

$cd Downloads/
$tar xf ../theitroad.tar

有时我们可能需要提取特定类型的文件。
例如,以下命令提取".png"类型文件。

$tar xf theitroad.tar --wildcards "*.png"

创建Gzipped和Bzpipped档案

默认情况下,tar创建归档文件以.tar扩展名为。
此外,Tar命令可以与压缩实用程序GZIP和BZIP2结合使用。
这些文件以.tar扩展为止,请参阅普通级别归档,文件以tar.gz或者.tgz引用zzpipped存档,并且tar.bz2或者.tbz分别以tar.bz2或者.tbz引用绑架档案。

首先,让我们创建一个绑定的档案:

$tar czf theitroad.tar.gz theitroad/

或者,

$tar czf theitroad.tgz theitroad/

其中我们使用Z标志使用GZIP压缩方法压缩存档。

我们可以使用v标志在创建存档时查看进度。

$tar czvf theitroad.tar.gz theitroad/
theitroad/
theitroad/file.odt
theitroad/image.png
theitroad/song.mp3

其中v是verbose。

要从文件列表中创建Gzipped存档:

$tar czf archive.tgz file1 file2 file3

要在当前目录中提取纬框的存档,请使用:

$tar xzf theitroad.tgz

要在不同的文件夹中提取存档,请使用-c标志。

$tar xzf theitroad.tgz -C Downloads/

现在,让我们创建压缩包。

为此,请使用如下所示的j选项。

创建目录的存档:

$tar cjf theitroad.tar.bz2 theitroad/

或者,

$tar cjf theitroad.tbz theitroad/

从文件列表中创建存档:

$tar cjf archive.tar.bz2 file1 file2 file3

或者,

$tar cjf archive.tbz file1 file2 file3

要显示进度,请使用v标志。

现在,让我们在当前目录中提取Bzipped存档。
为此,我们做:

$tar xjf theitroad.tar.bz2

或者,将存档提取到其他目录:

$tar xjf theitroad.tar.bz2 -C Downloads

一次创建存档的多个目录和/或者文件

这是tar命令的另一个最酷的功能。
要立即创建多个目录或者文件的Gzipped存档,请使用以下命令:

$tar czvf theitroad.tgz Downloads/Documents/theitroad/file.odt

上面的命令将在IniToroad目录中创建一个存档,文档目录和file.odt文件,并在当前工作目录中保存存档。

从创建存档时排除目录和/或者文件

备份数据时非常有用。
我们可以从备份中排除非重要文件或者目录。
这是 - 切换开关的帮助。
例如,我们要创建/主目录的存档,但排除下载,文档,图片,音乐目录。

这是我们的做法。

$tar czvf theitroad.tgz /home/sk --exclude=/home/sk/Downloads --exclude=/home/sk/Documents --exclude=/home/sk/Pictures --exclude=/home/sk/Music

上面的命令将创建一个Gzipped存档的$Home目录,不包括下载,文档,图片和音乐文件夹。
要创建Bzipped存档,请用J替换Z并在上面的示例中使用扩展.bz2.

列出存档文件的内容而不提取它们

要列出存档文件的内容,我们使用T标志。

$tar tf theitroad.tar 
theitroad/
theitroad/file.odt
theitroad/image.png
theitroad/song.mp3

要查看详细的输出,请使用v标志。

$tar tvf theitroad.tar 
drwxr-xr-x sk/users 0 2016-03-26 19:52 theitroad/
-rw-r--r-- sk/users 9942 2016-03-24 13:49 theitroad/file.odt
-rw-r--r-- sk/users 36013 2014-09-30 11:52 theitroad/image.png
-rw-r--r-- sk/users 112383 2016-02-22 14:35 theitroad/song.mp3

将文件添加到现有档案

可以使用R标志将文件或者目录添加/更新为现有档案。
看看以下命令。

$tar rf theitroad.tar theitroad/sk/example.txt

上面的命令将将名为sk的目录添加到名为example.txt的文件。

我们可以验证文件是否添加或者不使用命令:

$tar tvf theitroad.tar 
drwxr-xr-x sk/users 0 2016-03-26 19:52 theitroad/
-rw-r--r-- sk/users 9942 2016-03-24 13:49 theitroad/file.odt
-rw-r--r-- sk/users 36013 2014-09-30 11:52 theitroad/image.png
-rw-r--r-- sk/users 112383 2016-02-22 14:35 theitroad/song.mp3
drwxr-xr-x sk/users 0 2016-03-26 19:52 sk/
-rw-r--r-- sk/users 0 2016-03-26 19:39 sk/linux.txt
-rw-r--r-- sk/users 0 2016-03-26 19:56 example.txt

总结

创建tar档案:

  • 普通tar存档:tar -cf archive.tar file1 file2 file3
  • gzipped tar存档:tar -czf archive.tgz file1 file2 file3
  • Bzipped tar存档:tar -cjf archive.tbz file1 file2 file3

提取tar档案:

  • 普通tar存档:tar -xf archive.tar
  • gzipped tar存档:tar -xzf archive.tgz
  • bzzipped tar存档:tar -xjf archive.tbz