什么是命令?
是 tape archive 的缩写,意思是磁带归档,归档可以视为存档。 命令网上很多都提到,它是一个压缩命令,为什么会这样说呢?
实际上,它是用于创建和提取 归档文件的,最初的设计就是用于将多个文件打包到磁带上进行备份。随着时间的推移 ,命令已经扩展到处理文件和目录的归档和压缩。
命令之所以常被称为压缩命令,是因为它通常与压缩算法结合使用,可以在创建归档时对文件进行压缩,以减小归档文件的大小。这种结合使用压缩算法的方式是出于效率和存储空间的考虑,尤其在处理大量文件或传输文件时特别有用。
压缩算法通常是通过选项来指定的。在常见的 命令中,使用
-z
选项表示使用 gzip 压缩算法,-j
选项表示使用 bzip2 压缩算法,而-Z
选项表示使用 compress 压缩算法。
这些压缩算法可以有效地减小文件的大小,并在需要时进行解压缩还原。所以,现在的 命令在许多场景中不仅用于创建和提取归档文件,还常用于压缩和解压缩文件。
如何使用 命令?
命令的基本语法如下:
tar [选项参数] 归档文件名 文件/目录名
其中,[选项参数]
是可选的,用于指定 命令的不同操作。[归档文件名]
是要创建或提取的归档文件的名称。[文件/目录名]
是要打包或提取的文件或目录的名称。
1. 创建归档文件
要创建归档文件,可以使用 -c
选项并指定要创建的归档文件的名称,然后提供要打包的文件或目录的名称。
c 代表 create,意味着创建一个新的归档文件来保存指定的文件和目录。
使用-c
参数时,通常需要结合-f
参数指定存档文件的名称。f 代表 file,表示后面紧跟着的参数是存档文件的名称。例如,-f archive.tar
指定了归档文件为archive.tar
。
tar -c -f 归档文件.tar 文件/目录
# -c Create a new archive containing the specified items. The long option form is --create.
# -r Like -c, but new entries are appended to the archive. Note that this only works on uncompressed archives stored in regular files. The -f option is required. The long option form is --append.
# -u Like -r, but new entries are added only if they have a modification date newer than the corresponding entry in the archive. Note that this only works on uncompressed archives stored in regular files. The -f option is required. The long form is --update.
# In -c, -r, or -u mode, each specified file or directory is added to the archive in the order specified on the command line. By default, the contents of each directory are also archived.
举个例子,现在我们在当前目录下有一个 crack
目录,我们想将 crack
目录归档,保存一下,那么就可以要创建名一个为 crack.tar
的归档文件并打包 crack 目录,可以执行以下命令:
tar -c -f crack.tar crack
2. 提取归档文件
要从归档文件中提取文件或目录,可以使用 -x
选项并指定要提取的归档文件的名称。
x 代表 extract,表示从存档文件中提取归档的文件和目录。使用
-x
参数时,通常需要结合-f
参数指定要提取的存档文件的名称。
tar -x -f 归档文件.tar
# -x Extract to disk from the archive. If a file with the same name appears more than once in the archive, each copy will be extracted, with later copies overwriting (replacing) earlier copies. The long option form is --extract.
# In extract or list mode, the entire command line is read and parsed before the archive is opened. The pathnames or patterns on the command line indicate which items in the archive should be processed. Patterns are shell-style globbing patterns as documented in tcsh(1).
现在,我们把上一步创建的归档文件进行提取,提取所有文件和目录,可以执行以下命令:
tar -x -f crack.tar
3. 压缩归档文件
命令还支持将归档文件与压缩算法结合使用以减小文件大小。常见的压缩算法包括 gzip (-z)、bzip2 (-j) 和 xz (-J)。
tar -c -z -f 归档文件.tar.gz 文件/目录
tar -c -j -f 归档文件.tar.bz2 文件/目录
tar -c -J -f 归档文件.tar.xz 文件/目录
现在,我们想要把 crack
归档并且压缩,分别使用这 3 种算法压缩,那么可以分别创建名为 crack.tar.gz
的 gzip 压缩归档文件、crack.tar.bz2
的 bzip2 压缩归档文件和 crack.tar.xz
的 xz 压缩归档文件,并打包目录 crack
,现在就可以依次执行以下命令:
tar -c -z -f crack.tar.gz crack
tar -c -j -f crack.tar.bz2 crack
tar -c -J -f crack.tar.xz crack
4. 解压归档文件
现在是有了 3 个压缩的归档文件了,那么如何解压呢?聪明的你肯定知道了,就是使用 -x 选项参数。另外,还要根据压缩的算法选择用哪个参数来解压,并通过 -x
与 -z
或 -j
或 -J
配合使用。
直接解压 gzip 压缩归档文件到当前目录:
tar -x -z -f crack.tar.gz
解压 bzip2 压缩归档文件到指定目录,配置选项参数 -C
(大写字母 C,是 Change directory 的缩写,表示改变目录)来指定目录:
tar -x -j -f crack.tar.bz2 -C ./bz2dir/
解压 xz 压缩归档文件到指定目录:
tar -x -J -f crack.tar.xz -C ./xzdir/
5. 显示归档文件内容
要查看归档文件中的内容,可以使用 -t
选项并指定归档文件的名称,列出存档文件中的内容(list)
tar -t -f 归档文件.tar
# -t List archive contents to stdout. The long option form is --list.
我们现在就看看归档的内容,以最开始的 crack.tar
为例:
tar -t -f crack.tar
对于有使用压缩算法压缩的归档文件,也是一样的用法:
tar -t -f crack.tar.gz
6. 其他常用选项
除了上述基本用法,命令还提供了许多其他选项,用于执行各种操作和控制归档文件的行为。以下是一些常用的选项:
-C
:(Change directory)切换到指定目录后再执行操作,在 命令中,一般就是解压的时候,配合这个-C
,可以让我们将文件解压到其他指定的目录中。
-C
directory,--cd
directory,--directory
directory
# In c and r mode, this changes the directory before adding the following files.
# In x mode, change directories after opening the archive but before extracting entries from the archive.
-v
:(verbose,详细的)在操作过程中,显示输出的详细信息,列出打包或提取的每个文件的名称。
--delete
:从存档中删除文件。
这里只是一些常见的 命令用法,还有其他选项和参数可以根据具体需求使用。使用 man tar
命令可以查看 命令的手册页,以获取更详细的信息。
选项参数的先后顺序:
在 命令中,选项参数的先后顺序通常没有特定的规定。可以根据需要灵活地组合和排列选项参数。
还有一些通用的惯例需要知道,这样可以帮助我们更好地使用选项参数:
- 通常情况下,选项参数以连字符 - 开头,例如
-c
,-x
,-v
等。- 单个字母的选项参数可以组合在一起,形成一个选项字符串。例如,
-cvf
表示同时启用-c
,-v
,-f
这三个选项。- 选项参数的顺序可能会影响命令的行为。例如,使用
-f
选项指定文件名时,应该确保-f
出现在文件名之前,以便正确识别文件名。- 一些选项参数可能需要后面紧跟着参数值。例如,
-f
选项需要指定后面的文件名,例如-f archive.tar.gz
。
总结
最初是 tape archive(磁带归档)的简称,并且在早期主要用于磁带备份,但现在它已经成为一种常见的文件处理工具,可以创建、提取和管理归档文件,并结合压缩算法实现文件的压缩和解压缩功能。
以上内容引述自CSDN:原文链接