命令行大全

tar

rose1 发表于 2020-07-13 10:07浏览次数:

在此类Unix操作系统,tar命令创建,维护,修改,提取文件被封存在焦油格式。 本文档介绍tar的GNU / Linux版本。

查看英文版

目录:

1 tar 运行系统环境

2 tar 说明

3 tar 语法

4 tar 例子

tar 运行系统环境

Linux

tar 说明

“ Tar”代表磁带存档。它是一种归档文件格式。

tar最初是在Unix早期开发的,目的是将文件备份到基于磁带的存储设备上。它后来被正式化为POSIX标准的一部分,如今已用于收集,分发和归档文件,同时保留文件系统 属性,例如用户和组 权限,访问和修改日期以及目录结构。

本文档介绍了tar的GNU版本,该版本随Linux 操作系统的大多数现代变体一起提供。

"Tar" stands for tape archive. It is an archiving file format.

tar was originally developed in the early days of Unix for the purpose of backing up files to tape-based storage devices. It was later formalized as part of the POSIX standard, and today is used to collect, distribute, and archive files, while preserving file system attributes such as user and group permissions, access and modification dates, and directory structures.

This documentation covers the GNU version of tar, which is included with most modern variants of the Linux operating system.

查看英文版

查看中文版

tar 语法

tar [-] A --catenate --concatenate | c --create | d --diff --compare | 
    --delete | r --append | t --list | --test-label | u --update | 
    x --extract --get [options] [pathname ...]

操作方式

tar的第一个参数应为函数规范:字母A,c,d,r,t,u或x之一,或长函数名之一。 功能字母不需要以短划线(“-”)为前缀,并且可以与其他单字母选项结合使用。 长函数名称必须以双破折号(“-”)开头。 一些选项带有一个参数。 使用单字母形式时,必须将它们作为单独的参数给出。 对于长格式,可以通过在选项后附加“ = value”来给出。

例如,以下命令都是等效的:

tar --create --file=archive.tar file1 file2
tar -c -f archive.tar file1 file2
tar -cf archive.tar file1 file2
tar cf archive.tar file1 file2

功能

指定以下功能之一可以选择tar的主要操作模式:

A--catenate--concatenate 将 tar文件追加到存档中。
c--create 创建一个新的存档。
d--diff--compare 计算归档文件和文件系统之间的任何差异。
--delete 从档案中删除。(此功能在磁带上不起作用)。
r--append 将文件追加到tar归档文件的末尾。
t--list 列出档案的内容。
--test-label 测试标签 测试档案标签,然后退出。
u--update 附加文件,但仅附加比归档文件中的副本新的文件。
x--extract--get 从存档中提取文件。

其他选择

以下选项指定tar的操作方式:

-[0-7][lmh] 指定驱动器和密度。(如果不确定这意味着什么,则无需使用此选项。)
-a--auto-compress 使用档案的后缀来确定压缩程序。例如,如果指定了此选项,则始终将以扩展名.tar.gz来处理归档文件,就如同指定了--gzip选项一样(请参见下面的--gzip)。
--add-file=file 将文件添加到存档。(当文件名以短划线开头时,此选项特别有用。)
--anchored 文件名模式必须从文件名开头开始匹配。
--no-anchored 文件名模式可以在任何“ / ” 之后匹配(这是排除文件的默认值;请参见下面的--exclude)。
--atime-preserve 通过恢复时间或(如果操作系统支持)保留时间来保留归档文件的访问时间,而不是首先更改它们。
--no-auto-compress 不要使用存档文件名后缀自动确定压缩程序。
-b--blocking-factor BLOCKS 处理档案时,请使用BLOCKS x 512 字节-每条记录。
-B--read-full-records “重新阻止”所有输入。此选项可以帮助读取损坏的档案。
--backup[=backup-method tar会使用指定的备份方法backup-method备份文件,而不是从文件系统中删除文件,该备份方法可以是以下之一:

tnumbered 始终进行编号备份。
nilexisting 对已有文件进行编号备份,并对其他文件进行简单备份。
neversimple 始终进行简单的备份。

如果未指定,则备份方法默认为环境变量VERSION_CONTROL的值;如果未定义VERSION_CONTROL,则备份方法默认为existing。
-C--directory DIR Change to directory 执行任何操作之前,请更改为目录DIR。
--check-device 检查设备 创建增量归档时,请检查设备编号。这是默认行为。
--no-check-device 创建增量归档时,请勿检查设备编号。
--checkpoint[=NUMBER] 使用“检查点”:每NUMBER条记录显示一条进度消息(默认为10)。
--checkpoint-action=ACTION 在每个检查点执行ACTION。ACTION可能是以下之一:

bell 在控制台上播放铃声。
dot. 打印一个点。
echo 在控制台上显示一条文本消息(标准错误)。
echo=string 显示字符串 的字符串在标准错误; 输出之前,任何元字符的字符串被扩展。
exec=command 执行给定的命令。
sleep=time 等待时间秒。
ttyout=string 当前控制台上的输出字符串(' / dev / tty ')。
可以指定 几个--checkpoint-action选项。 提供的动作将按照它们在命令行上出现的顺序执行。

使用--checkpoint行动不--checkpoint将承担的默认检查点间隔10分的记录。
--delay-directory-restore 延迟设置修改时间和提取目录的权限,直到提取结束。
--no-delay-directory-restore 从该目录提取所有文件后,将设置提取目录的修改时间和权限。这是默认值。
--exclude=PATTERN 避免对名称与文件名模式PATTERN匹配的文件进行操作。
--exclude-backups 从所有操作中排除备份和锁定文件。
--exclude-caches 使tar排除所有包含缓存目录标记的目录。

缓存目录标记是一个简短文件,名称为CACHEDIR.TAG,并且在http://www.brynosaurus.com/cachedir/spec.html中指定了标准标头。此选项排除目录的内容,但归档目录本身和CACHEDIR.TAG文件。
--exclude-caches-all 完全省略包含CACHEDIR.TAG文件的目录。
--exclude-caches-under 排除包含CACHEDIR.TAG文件的目录下的所有内容,包括CACHEDIR.TAG文件;但是,存档目录。
--exclude-tag=FILE 排除任何包含文件FILE的目录的内容,但归档目录和文件FILE。
--exclude-tag-all=FILE 完全省略包含文件FILE的目录。
--exclude-tag-under=FILE 排除包含文件FILE的目录下的所有内容,包括文件FILE;但是,存档目录。
--exclude-vcs 排除版本控制子目录。此选项可识别许多广泛使用的VCS系统使用的文件和目录。排除的文件为:

  • CVS/, 及其下的所有内容
  • RCS/, 及其下的所有内容
  • SCCS/, 及其下的所有内容
  • .git/, 及其下的所有内容
  • .gitignore
  • .cvsignore
  • .svn/, 及其下的所有内容
  • .arch-ids/, 及其下的所有内容
  • {arch}/, 及其下的所有内容
  • =RELEASE-ID
  • =meta-update
  • =update
  • .bzr
  • .bzrignore
  • .bzrtags
  • .hg
  • .hgignore
  • .hgrags
  • _darcs
-f--file=ARCHIVE 使用存档文件(或设备)ARCHIVE。
-F--info-script--new-volume-script=NAME 在每个磁带的末尾运行脚本NAME(表示-M)。
--force-local 强制tar将存档文件视为本地文件,即使其名称包含冒号也是如此。
--full-time 打印所有文件时间的完整分辨率。
-g--listed-incremental=FILE 在--create操作期间,此选项指定存档为新的GNU格式的增量备份,并使用快照文件FILE确定要备份的文件。对于其他操作,此选项通知tar存档为增量格式。
-G--incremental 增量 处理旧的GNU格式的增量备份。
--group=NAME 强制将NAME作为添加文件的组。
-h--dereference 遵循符号链接 ; 存档他们指向的文件。
-H--format=FORMAT 创建给定格式的档案,其中FORMAT是以下之一:

gnu GNU tar 1.13.x格式。
oldgnu tar版本1.12和更低版本中使用的GNU格式。
pax POSIX 1003.1-2001(“ pax”)格式。
posix 与pax相同。
ustar POSIX 1003.1-1988(“ ustar”)格式。
v7 旧的Unix版本7 tar格式。
--hard-dereference 遵循硬链接 ; 存档他们引用的文件。
-i--ignore-zeros 忽略存档中的清零块。通常,值为零的整个字节块表示归档结束;此选项可帮助tar处理损坏的档案,或其他任何内容形式为零的奇异档案。
-I--use-compress-program=PROG 使用外部压缩程序PROG。如果对编译时与后缀关联的压缩程序不满意,或者您有GNU tar不支持的压缩程序,请使用此选项。 该PROG参数必须是一个有效的命令,因为你将在键入命令行 提示符可以根据需要,与任何其他选项。如果包含空格,请用引号引起来。



PROG应该遵循两个约定:首先,在没有其他选项的情况下调用PROG时,它应该从标准输入中读取数据,对其进行压缩并在标准输出中输出。其次,如果使用附加的' -d'选项,它应该做的恰好相反:从标准输入读取压缩数据,并在标准输出上生成未压缩的数据。

后一个要求意味着您不得在PROG命令调用本身中使用' -d '选项。
--ignore-case 匹配模式或文件名时忽略字符大小写。
--no-ignore-case 使用区分大小写的模式和文件名匹配(这是默认设置)。
--ignore-command-error 忽略子流程的退出代码。
--no-ignore-command-error 将子流程的非零退出代码视为错误。
--ignore-failed-read 不要仅因为遇到无法读取的文件而退出。
--index-file=FILE 将详细输出发送到文件FILE,以供以后使用。
-j--bzip2 此选项告诉tar使用bzip2压缩器读取或写入档案。
-J--xz 告诉tar使用xz压缩器读取或写入档案。
-k--keep-old-files 从存档中提取文件时,请勿覆盖现有文件,如果存在此类文件,则返回错误。
-K--starting-file=NAME 此选项仅影响提取。tar将跳过提取存档中的文件,直到找到与name匹配的文件为止。
--keep-newer-files 不要替换比其存档副本新的现有文件。
-l--check-links 检查为每个已处理文件转储的链接数。如果此数字与文件的硬链接总数不匹配,请打印警告消息。
-L--tape-length=size[suf] 写入一定数量的字节后,请更换磁带。如果SUF没有指定,SIZE被视为千字节(1024个字节),这等同于指定SUF为乙。suf可能是以下之一:

suffix units byte equivalent
b Blocks size x 512
B Kilobytes size x 1024
c Bytes size
G Gigabytes size x 1024^3
K Kilobytes size x 1024
k Kilobytes size x 1024
M Megabytes size x 1024^2
P Petabytes size x 1024^5
T Terabytes size x 1024^4
w Words size x 2
--level=n 使用--listed-incremental选项时,强制执行级别n的增量备份。
--lzip 通过lzip压缩器读取或写入档案。
--lzma 通过lzma压缩器读取或写入档案。
--lzop 通过lzop压缩器读取或写入档案。
-m--touch 将提取文件的数据修改时间设置为提取时间,而不是存档中存储的数据修改时间。换句话说,触摸所有提取的文件。
-M--multi-volume 此类归档文件被分成几部分,因此它们可能适用于太小而无法容纳整个归档文件的媒体。
--mode=permissions 将文件添加到归档文件时,tar将为归档文件成员分配权限,而不是文件中的权限。的权限可以被指定或者作为八进制数或作为符号的权限,如CHMOD。
--mtime=date 将文件添加到归档文件时,tar将使用date作为成员在创建归档文件时的修改时间,而不是其实际修改时间。date的值可以是文本日期表示形式,也可以是现有文件名,以“ / ”或“ 。 ” 开头,在这种情况下,将使用该文件的修改时间。
-n--seek 假设存档媒体支持查找任意位置。通常,tar会自动确定是否可以查找档案。此选项适用于这种识别失败的情况。仅在打开存档以使用“ --list ”或“ --extract ”选项进行读取时,此选项才有效。
-N--newer--after-date=date 只存储日期或之后发生更改的数据或状态的文件。如果date是文件名,则使用该文件的日期。
--newer-mtime=date 类似于--after-time,但仅查看修改时间。
--null 当tar使用' --files-from '选项时,此选项指示tar期望以NUL结尾的文件名,因此tar可以正确使用包含换行符的文件名。
--no-null 取消指定的任何以前的--null选项。
--numeric-owner 用户/组所有权信息始终使用数字ID,而不是名称。
-O--to-stdout 将文件提取到标准输出。
--occurrence[=number] 这个选项可以结合使用与子命令的一个“ --delete ”,“ --diff ”,“ --extract ”或“ --list当任给出在命令行或通过的文件的列表”' -T '选项。

此选项指示焦油工艺仅数每个命名次出现文件。该数字默认为1,因此:

tar -x -f archive.tar --occurrence filename
将从“ archive.tar ”中提取成员“ filename ” 的第一个匹配项,并且将终止而不扫描到归档的末尾。
--old-archive--portability 与“ --format = v7 ”相同。
--one-file-system 归档时防止tar越过文件系统边界。可以与任何写操作一起使用。
--overwrite 解压缩时覆盖现有文件。
--overwrite-dir 提取时覆盖现有目录的元数据(这是默认行为)。
--no-overwrite-dir 提取时保留现有目录的元数据。
--owner=user 指定tar在创建档案时应使用user作为成员的所有者,而不是与源文件关联的用户。该用户可以是用户名或用户的数字ID,或既作为“ 名称:ID ”。
-p--preserve-permissions--same-permissions 当焦油的提取档案时,它通常减去用户的umask从归档,并将其用作权限号创建目标文件中指定的权限。指定此选项可指示tar它应直接使用存档中的权限。
-P--absolute-names 不要从文件名中删除前导“ / ”。
--pax-option=keyword-list 启用以POSIX.1-2001格式创建档案的功能,其中keyword-list是该格式特定的关键字选项的逗号分隔列表。
--posix 与--format = posix相同。
--preserve 这与同时指定“ --preserve-permissions ”和“ --same-order ”相同。
--quote-chars=STRING 当显示文件和档案的其他成员时,tar以一种特殊的方式对待文件名,以避免文件名中可能出现某些字符引起的歧义。这称为名称引用。该--quote-字符选项,另外,引用中出现的任何字符字符串。
--no-quote-chars=STRING 引用名称时,tar将永远不会引用STRING中的任何字符。
--quoting-style=STYLE 引用名称时,请使用样式STYLE。STYLE的有效值为:literal,shell,shell-always,c,escape,locale和clocale。缺省的引用样式是escape,除非在配置软件包时将其覆盖。
-R--block-number 指定此选项后,tar将在归档文件中使用块号打印读取错误的错误消息。
--record-size=siz[suf] 指示焦油在使用尺寸访问归档字节时,每记录。该参数可以带有大小后缀,例如,“ --record-size = 10K ”为10 KB。
--recursion 递归到目录(这是默认设置)。
--no-recursion 归档时不要递归到子目录中。
--recursive-unlink 从归档文件中提取具有相同名称的目录之前,请删除现有的目录层次结构。
--remove-files 将文件添加到存档后删除文件。
--restrict 禁用某些潜在有害的tar选项。当前,此选项禁用外壳程序调用。
--rmt-command=cmd 如果tar使用远程磁带服务器,则此选项通知tar应该将cmd用作远程磁带服务器程序,而不是默认的“ / usr / libexec / rmt ”。
--rsh-command=cmd 如果tar使用远程Shell与非本地设备进行通信,则此选项通知tar应该使用cmd而不是默认的rsh。
-s--preserve-order--same-order 在具有少量内存的计算机上处理大量文件名列表时,此选项有帮助。它一起使用--compare,--list或--extract。

该--same顺序选项告知tar文件名列表中列出或提取以相同的顺序作为归档文件进行排序。这样即使在小型计算机上也可以使用大量的名称,否则将无法同时将所有名称保存在内存中。通过在归档文件上运行tar -t并编辑其输出,可以轻松创建此类排序列表。

在现代计算机系统上可能永远不需要此选项。
-S--sparse 此选项指示tar在尝试存档每个文件之前测试其稀疏性。如果发现文件稀疏,则将对其进行特殊处理,从而减少归档文件中映像所使用的空间量。

仅当创建或更新档案时,此选项才有意义。它对提取没有影响。
--same-owner 尝试赋予提取的文件与存档中相同的所有权(这是超级用户的默认权限)。
--no-same-owner 提取时请勿尝试恢复所有权。这是普通用户的默认行为,因此此选项仅对超级用户有效。
--no-same-permissions 从存档中提取权限时,请应用用户的umask。这是普通用户的默认行为。
--no-seek 不要试图在档案中寻找任意位置。
--show-defaults 显示tar的默认选项。这在某些shell脚本中很有用。
--show-omitted-dirs 列出或提取时,列出与搜索条件不匹配的每个目录。
--show-transformed-names--show-stored-names 应用任何名称转换后显示文件或成员名称。特别是,当与档案创建操作之一结合使用时,它会指示tar列出档案中存储的成员名称,而不是实际的文件名。
--sparse-version=version-number 指定存档稀疏文件时要使用的格式版本。表示' --sparse '。
--strip-components=number 提取前从文件名中剥离给定数量的前导组件。例如,如果归档文件“ archive.tar ”包含一个名为“ / some / file / name ”的成员,则运行:

tar --extract --file archive.tar --strip-components=2
".将提取此文件到文件“ name ”。
--suffix=suffix 使用文件名后缀后缀备份文件时。如果未指定--suffix,则默认的备份后缀为环境变量 DEFAULT_BACKUP_SUFFIX的值,或者如果未定义该变量,则为“ 〜 ”。
-T--files-from=file 除了在命令行上指定的内容外,tar还将使用文件的内容作为要操作的存档成员或文件的列表。
--to-command=command 在提取过程中,焦油意愿管提取的文件的标准输入的命令。
--totals[=signum] 处理归档文件时显示字节总数。如果指定了signum,则当tar收到信号编号signum时显示这些总数。
--transform--xform=sed-expr 用sed替换表达式sed-expr替换文件名。例如

tar cf archive.tar --transform 's,^\./,usr/,'
将从当前工作目录中添加到archive.tar文件中,并以“ usr / ” 替换初始的“ ./ ”前缀。
-U--unlink-first 从存档中提取相应文件之前,请先从文件系统中删除该文件,而不是覆盖它。
--unquote 用-T读入的无引号文件名;这是默认值。
--no-unquote 不要取消引用-T读取的文件名。
--utc 以UTC打印所有文件时间(通用时间)。
-v--verbose 详细操作。
-V--label=name 创建档案时,将名称写为档案中的名称记录。提取或列出档案时,tar将仅对标签与name中指定的模式匹配的档案进行操作。
--volno-file=file 与“ --multi-volume ” 一起使用时,tar会跟踪文件file中正在处理的多卷归档的哪个卷。
-w--interactive--confirmation 要求确认每个动作。
-W--verify 写入后尝试验证档案。
--warning=keyword 控制由关键字标识的警告消息的显示。如果关键字以前缀“ no- ” 开头,则将禁止显示此类消息。否则,将启用它们。可以使用


多个“ --warning ”规范。tar中


提供了各种警告消息的关键字。这两个全局关键字是:




启用所有警告消息。这是默认值。
none 禁用所有警告消息。
--wildcards 使用通配符。
--wildcards-match-slash 指定此选项后,模式中的通配符(例如*)可以与名称中的“ / ” 匹配。否则,“ / ”仅由匹配的“ / ”。当tar排除文件时,这是默认设置。
--no-wildcards-match-slash “ / ”不能与通配符匹配,只能与“ / ” 匹配。
--no-wildcards 无通配符 不允许使用通配符。文件名只能逐字匹配。
-X--exclude-from=file 与--exclude类似,但排除与文件file中列出的模式匹配的文件。
-z--gzip--gunzip 此选项告诉tar通过gzip读取或写入档案,从而允许tar透明地直接对多种压缩档案进行操作。例如,当对扩展名为.tar.gz的文件进行操作时,应使用此选项。
-Z--compress--uncompress 在对文件进行操作时,tar将使用compress程序。

环境

以下环境变量会影响tar的操作:

SIMPLE_BACKUP_SUFFIX 如果未指定--suffix,则在备份文件时使用的文件名后缀。默认备份后缀为“ 〜 ”。
TAR_OPTIONS 在此变量中指定的任何选项都将放在命令行上为tar指定的选项之前。
TAPE 如果未指定--file,则使用的归档磁带或文件。如果未定义此变量,并且未指定--file,则tar将使用标准输入和标准输出。
tar [-] A --catenate --concatenate | c --create | d --diff --compare | 
    --delete | r --append | t --list | --test-label | u --update | 
    x --extract --get [options] [pathname ...]

Operation

The first argument to tar should be a function specification: either one of the letters Acdrtu, or x, or one of the long function names. A function letter does not need to be prefixed with a dash ("-"), and may be combined with other single-letter options. A long function name must be prefixed with a double dash ("--"). Some options take a parameter; with the single-letter form these must be given as separate arguments. With the long form, they may be given by appending "=value" to the option.

For example, the following commands are all equivalent:

tar --create --file=archive.tar file1 file2
tar -c -f archive.tar file1 file2
tar -cf archive.tar file1 file2
tar cf archive.tar file1 file2

Functions

Specifying one of the following functions selects what tar's main mode of operation will be:

A--catenate--concatenate Append tar files to an archive.
c--create Create a new archive.
d--diff--compare Calculate any differences between the archive and the file system.
--delete Delete from the archive. (This function doesn't work on magnetic tapes).
r--append Append files to the end of a tar archive.
t--list List the contents of an archive.
--test-label Test the archive label, and exit.
u--update Append files, but only those that are newer than the copy in the archive.
x--extract--get Extract files from an archive.

Other Options

The following options specify the way tar operates:

-[0-7][lmh] Specifies drive and density. (If you're not sure what this means, you don't need to use this option.)
-a--auto-compress Use the archive's suffix to determine the compression program. For example, if this option is specified, an archive with the extension .tar.gz will always be handled as if the --gzip option had been specified (see --gzip, below).
--add-file=file Add file to the archive. (This option is especially useful when the name of the file begins with a dash.)
--anchored File name patterns must match from the begining of a file name.
--no-anchored File name patterns may match after any "/" (this is the default for excluding files; see --exclude, below).
--atime-preserve Preserve access times on archived files, either by restoring the times, or (if the operating system supports it) not changing them in the first place.
--no-auto-compress Do not automatically determine the compression program using the archive file name suffix.
-b--blocking-factor BLOCKS Use BLOCKS x 512 bytes-per-record when handling the archive.
-B--read-full-records "Re-block" all input. This option can help read damaged archives.
--backup[=backup-method Rather than deleting files from the file system, tar will back them up using the specified backup method backup-method, which may be one of the following:

tnumbered Always make numbered backups.
nilexisting Make numbered backups of files that already have them, and simple backups of the others.
neversimple Always make simple backups.

If not specified, backup-method defaults to the value of environment variable VERSION_CONTROL; if VERSION_CONTROL is undefined, backup-method defaults to existing.
-C--directory DIR Change to directory DIR before performing any operations.
--check-device check device numbers when creating incremental archives. This is the default behavior.
--no-check-device Do not check device numbers when creating incremental archives.
--checkpoint[=NUMBER] Use "checkpoints": display a progress message every NUMBER records (default 10).
--checkpoint-action=ACTION Execute ACTION at every checkpoint. ACTION may be one of the following:

bell Play an audible bell at the console.
dot. Print a single dot.
echo Display a text message at the console (to standard error).
echo=string Display string string on standard error; before output, any metacharacters in string are expanded.
exec=command Execute the given command.
sleep=time Wait for time seconds.
ttyout=string Output string on the current console ('/dev/tty').
Several --checkpoint-action options can be specified. The supplied actions will be executed in the order of their appearance on the command line.

Using --checkpoint-action without --checkpoint will assume the default checkpoint interval of 10 records.
--delay-directory-restore Delay setting modification times and permissions of extracted directories until extraction has ended.
--no-delay-directory-restore Modification times and permissions of extracted directories are set when all files from this directory have been extracted. This is the default.
--exclude=PATTERN Avoid operating on files whose names match file name pattern PATTERN.
--exclude-backups exclude backup and lock files from all operations.
--exclude-caches Causes tar to exclude all directories that contain a cache directory tag.

A cache directory tag is a short file with the name CACHEDIR.TAG and having a standard header specified in http://www.brynosaurus.com/cachedir/spec.html. This option excludes the contents of the directory, but archives the directory itself and the CACHEDIR.TAG file.
--exclude-caches-all Omit directories containing a CACHEDIR.TAG file entirely.
--exclude-caches-under Exclude everything under directories containing a CACHEDIR.TAG file, including the CACHEDIR.TAG file; but, archive the directory.
--exclude-tag=FILE Exclude the contents of any directory containing file FILE, but archive the directory and the file FILE.
--exclude-tag-all=FILE Omit directories containing file FILE entirely.
--exclude-tag-under=FILE Exclude everything under directories containing file FILE including the file FILE; but, archive the directory.
--exclude-vcs Exclude version control subdirectories. This option recognizes the files and directories used by many widely-used VCS systems. The files excluded are:

  • CVS/, and everything under it
  • RCS/, and everything under it
  • SCCS/, and everything under it
  • .git/, and everything under it
  • .gitignore
  • .cvsignore
  • .svn/, and everything under it
  • .arch-ids/, and everything under it
  • {arch}/, and everything under it
  • =RELEASE-ID
  • =meta-update
  • =update
  • .bzr
  • .bzrignore
  • .bzrtags
  • .hg
  • .hgignore
  • .hgrags
  • _darcs
-f--file=ARCHIVE Use archive file (or device) ARCHIVE.
-F--info-script--new-volume-script=NAME run script NAME at the end of each tape (implies -M).
--force-local Force tar to treat the archive file as a local file, even if its name contains a colon.
--full-time Print the full resolution of all file times.
-g--listed-incremental=FILE During a --create operation, this option specifies that the archive be a new GNU-format incremental backup, using snapshot file FILE to determine which files to backup. With other operations, this option informs tar that the archive is in incremental format.
-G--incremental Handle old GNU-format incremental backups.
--group=NAME Force NAME as group for added files.
-h--dereference Follow symlinks; archive the files they point to.
-H--format=FORMAT Create archive of the given format, where FORMAT is one of the following:

gnu GNU tar 1.13.x format.
oldgnu GNU format used in tar versions 1.12 and lower.
pax POSIX 1003.1-2001 ("pax") format.
posix Same as pax.
ustar POSIX 1003.1-1988 ("ustar") format.
v7 Old Unix version 7 tar format.
--hard-dereference Follow hard links; archive the files they refer to.
-i--ignore-zeros Ignore zeroed blocks in archive. Normally an entire block of bytes with a value of zero indicates an end-of-archive; this option helps tar handle a damaged archive, or any other oddly-formed archive with blocks of zeros in its contents.
-I--use-compress-program=PROG Use external compression program PROG. Use this option if you are not happy with the compression program associated with the suffix at compile time, or if you have a compression program that GNU tar does not support. The PROG argument must be a valid command, as you would type it at the command line prompt, with any additional options as needed. Enclose it in quotes if it contains white space.

PROG should follow two conventions: First, when invoked without additional options, it should read data from standard input, compress it and output it on standard output. Secondly, if invoked with the additional '-d' option, it should do exactly the opposite: read the compressed data from the standard input and produce uncompressed data on the standard output.

The latter requirement means that you must not use the '-d' option as a part of the PROG command invocation itself.
--ignore-case Ignore character case when matching patterns or file names.
--no-ignore-case Use case-sensitive pattern and file name matching (this is the default).
--ignore-command-error Ignore exit codes of subprocesses.
--no-ignore-command-error Treat non-zero exit codes of subprocesses as an error.
--ignore-failed-read Do not exit merely because an unreadable file was encountered.
--index-file=FILE Send verbose output to file FILE for later use.
-j--bzip2 This option tells tar to read or write archives using the bzip2 compressor.
-J--xz Tells tar to read or write archives using the xz compressor.
-k--keep-old-files Do not overwrite existing files when extracting files from an archive, and return an error if such files exist.
-K--starting-file=NAME This option affects extraction only; tar will skip extracting files in the archive until it finds one that matches name.
--keep-newer-files Don't replace existing files that are newer than their archive copies.
-l--check-links Check the number of links dumped for each processed file. If this number does not match the total number of hard links for the file, print a warning message.
-L--tape-length=size[suf] Change tape after writing a certain number of bytes. If suf is not specified, SIZE is treated as kilobytes (1024 bytes), which is equivalent to specifying suf as B. suf may be one of the following:

suffix units byte equivalent
b Blocks size x 512
B Kilobytes size x 1024
c Bytes size
G Gigabytes size x 1024^3
K Kilobytes size x 1024
k Kilobytes size x 1024
M Megabytes size x 1024^2
P Petabytes size x 1024^5
T Terabytes size x 1024^4
w Words size x 2
--level=n When using the --listed-incremental option, force an incremental backup of level n.
--lzip Read or write archives through the lzip compressor.
--lzma Read or write archives through the lzma compressor.
--lzop Read or write archives through the lzop compressor.
-m--touch Sets the data modification time of extracted files to the extraction time, rather than the data modification time stored in the archive. In other words, touch all extracted files.
-M--multi-volume Create, list, or extract a multi-volume archive. Such archives are broken into parts so that they may fit on media too small to contain the entire archive.
--mode=permissions When adding files to an archive, tar will assign permissions to the archive members, rather than the permissions from the files. The permissions can be specified either as an octal number or as symbolic permissions, as with chmod.
--mtime=date When adding files to an archive, tar will use date as the modification time of members when creating archives, instead of their actual modification times. The value of date can be either a textual date representation or a name of the existing file, starting with "/" or ".", in which case the modification time of that file is used.
-n--seek Assume that the archive media supports seeking to arbitrary locations. Usually, tar determines automatically whether the archive can be seeked or not; this option is intended for use in cases when such recognition fails. It takes effect only if the archive is open for reading with "--list" or "--extract" options).
-N--newer--after-date=date Only store files whose data or status has changed on or after date. If date is a file name, the date of that file is used.
--newer-mtime=date Like --after-time, but looks at modification times only.
--null When tar is using the '--files-from' option, this option instructs tar to expect file names terminated with NUL, so tar can correctly work with file names that contain newlines.
--no-null Cancels any previous --null option specified.
--numeric-owner Always use numeric IDs, rather than names, for user/group ownership information.
-O--to-stdout Extract files to standard output.
--occurrence[=number] This option can be used in conjunction with one of the subcommands "--delete", "--diff", "--extract" or "--list" when a list of files is given either on the command line or via '-T' option.

This option instructs tar to process only the numberth occurrence of each named file. The number defaults to 1, so:

tar -x -f archive.tar --occurrence filename
will extract the first occurrence of the member "filename" from "archive.tar" and will terminate without scanning to the end of the archive.
--old-archive--portability Same as "--format=v7".
--one-file-system Prevents tar from crossing file system boundaries when archiving. Can be used with any write operation.
--overwrite Overwrite existing files when extracting.
--overwrite-dir Overwrite metadata of existing directories when extracting (this is the default behavior).
--no-overwrite-dir Preserve metadata of existing directories when extracting.
--owner=user Specifies that tar should use user as the owner of members when creating archives, instead of the user associated with the source file. The user can be a username, or a user's numeric ID, or both as "name:id".
-p--preserve-permissions--same-permissions When tar is extracting an archive, it normally subtracts the user's umask from the permissions specified in the archive and uses that number as the permissions to create the destination file. Specifying this option instructs tar that it should use the permissions directly from the archive.
-P--absolute-names Don't strip leading "/"s from file names.
--pax-option=keyword-list Enables creation of the archive in POSIX.1-2001 format, where keyword-list is a comma-separated list of keyword options specific to that format.
--posix Same as --format=posix.
--preserve This is the same as specifying both "--preserve-permissions" and "--same-order".
--quote-chars=STRING When displaying files and other members of an archive, tar treats file names in a special way to avoid ambiguities caused by certain characters that may occur in the file name; this is called name quoting. The --quote-chars option will, additionally, quote any characters occurring in STRING.
--no-quote-chars=STRING When name quoting, tar will never quote any of the characters in STRING.
--quoting-style=STYLE When name quoting, use name quoting style STYLE. Valid values of STYLE are: literalshellshell-alwayscescapelocale, and clocale. The default quoting style is escape, unless overridden while configuring the package.
-R--block-number With this option specified, tar prints error messages for read errors with the block number in the archive file.
--record-size=siz[suf] Instructs tar to use size bytes-per-record when accessing the archive. The argument can be suffixed with a size suffix, e.g., "--record-size=10K" for 10 kilobytes.
--recursion Recurse into directories (this is the default).
--no-recursion Do not recurse into subdirectories when archiving.
--recursive-unlink Remove existing directory hierarchies before extracting directories of the same name from the archive.
--remove-files Remove files after adding them to an archive.
--restrict Disable use of some potentially harmful tar options. Currently this option disables shell invocation.
--rmt-command=cmd In cases where tar is using a remote tape server, this option notifies tar that it should use cmd as the remote tape server program instead of the default, "/usr/libexec/rmt".
--rsh-command=cmd In cases where tar is using a remote shell to communicate with non-local devices, this option notifies tar that it should use cmd instead of the default, rsh.
-s--preserve-order--same-order This option helps when processing large lists of file names on machines with small amounts of memory. It is used in conjunction with --compare--list or --extract.

The --same-order option tells tar that the list of file names to be listed or extracted is sorted in the same order as the files in the archive. This allows a large list of names to be used, even on a small machine that would not otherwise be able to hold all the names in memory at the same time. Such a sorted list can easily be created by running tar -t on the archive and editing its output.

This option is probably never needed on modern computer systems.
-S--sparse This option instructs tar to test each file for sparseness before attempting to archive it. If the file is found to be sparse it is treated specially, thus allowing to decrease the amount of space used by its image in the archive.

This option is meaningful only when creating or updating archives. It has no effect on extraction.
--same-owner Attempt to give extracted files the same ownership as exists in the archive (this is the default for superuser).
--no-same-owner Do not attempt to restore ownership when extracting. This is the default behavior for ordinary users, so this option has an effect only for the superuser.
--no-same-permissions Apply the user's umask when extracting permissions from the archive. This is the default behavior for ordinary users.
--no-seek Do not attempt to seek to arbitrary locations within an archive.
--show-defaults Display tar's default options. This can be useful in certain shell scripts.
--show-omitted-dirs When listing or extracting, list each directory that does not match search criteria.
--show-transformed-names--show-stored-names Display file or member names after applying any name transformations. In particular, when used in conjunction with one of the archive creation operations it instructs tar to list the member names stored in the archive, as opposed to the actual file names.
--sparse-version=version-number Specifies the format version to use when archiving sparse files. Implies '--sparse'.
--strip-components=number Strip given number of leading components from file names before extraction. For example, if archive "archive.tar" contained a member named "/some/file/name", then running:

tar --extract --file archive.tar --strip-components=2
would extract this file to file "name".
--suffix=suffix Uses the file name suffix suffix when backing up files. If --suffix is not specified, the default backup suffix is the value of the environment variable DEFAULT_BACKUP_SUFFIX, or if that variable is not defined, "~".
-T--files-from=file tar will use the contents of file as a list of archive members or files to operate on, in addition to those specified on the command line.
--to-command=command During extraction, tar will pipe extracted files to the standard input of command.
--totals[=signum] Display byte totals when processing an archive. If signum is specified, these totals are displayed when tar receives signal number signum.
--transform--xform=sed-expr Replace file names with sed replacement expression sed-expr. For example,

tar cf archive.tar --transform 's,^\./,usr/,'
will add to archive.tar files from the current working directory, replacing initial "./" prefix with "usr/".
-U--unlink-first Remove a corresponding file from the file system before extracting it from the archive, rather than overwriting it.
--unquote Unquote file names read in with -T; this is the default.
--no-unquote Do not unquote file names read in with -T.
--utc Print all file times in UTC (universal time).
-v--verbose Operate verbosely.
-V--label=name When creating an archive, write name as a name record in the archive. When extracting or listing archives, tar will only operate on archives that have a label matching the pattern specified in name.
--volno-file=file Used in conjunction with "--multi-volume", tar will keep track of which volume of a multi-volume archive it's working on in file file.
-w--interactive--confirmation Ask for confirmation for every action.
-W--verify Attempt to verify the archive after writing it.
--warning=keyword Control display of the warning messages identified by keyword. If keyword starts with the prefix "no-", such messages are suppressed. Otherwise, they are enabled.

Multiple "--warning" specifications may be used.

There are keywords for various warning messages available in tar. The two global keywords are:


all Enable all warning messages. This is the default.
none Disable all warning messages.
--wildcards Use wildcards.
--wildcards-match-slash When this option is specified, a wildcard like "*" in the pattern can match a "/" in the name. Otherwise, "/" is matched only by "/". This is the default when tar is excluding files.
--no-wildcards-match-slash "/" cannot be matched by a wildcard, only by "/".
--no-wildcards Wildcards are not permitted. File names may only be matched verbatim.
-X--exclude-from=file Like --exclude, but excludes files matching the patterns listed in the file file.
-z--gzip--gunzip This option tells tar to read or write archives through gzip, allowing tar to directly operate on several kinds of compressed archives transparently. This option should be used, for example, when operating on files with the extension .tar.gz.
-Z--compress--uncompress tar will use the compress program when operating on files.

Environment

The following environment variables affect the operation of tar:

SIMPLE_BACKUP_SUFFIX File name suffix to use when backing up files, if --suffix is not specified. The default backup suffix is "~".
TAR_OPTIONS Any options specified in this variable will be prepended to options specified to tar on the command line.
TAPE The archiving tape or file to use if --file is not specified. If this variable is not defined, and no --file is specified, tar uses standard input and standard output instead.

查看英文版

查看中文版

tar 例子

tar -cf archive.tar file1 file2

创建包含文件file1和file2的存档archive.tar。在这里,c告诉tar您将创建一个归档文件;在˚F告诉焦油的下一个选项(这里的archive.tar中)将它创建的归档文件的名称。最后的参数file1和file2是要归档的文件。

tar -tvf archive.tar

详细列出归档文件archive.tar中的文件。在这里,t告诉tar列出档案的内容;v告诉tar详细操作;和˚F表示下一个参数是档案文件进行操作的名称。

tar -xf archive.tar

从存档archive.tar中提取文件。x告诉tar从档案中提取文件;f告诉tar下一个参数将是要操作的存档的名称。

tar -xzvf archive.tar.gz

详细地从gzip ped存档archive.tar.gz中提取文件。在这里,z告诉tar存档将使用gzip压缩。

tar -cf archive.tar mydir/

创建目录mydir的存档。

tar -czf archive.tar.gz mydir/

创建目录mydir的gzip压缩存档。

tar -zxvf myfile.tar.gz

将myfile.tar.gz的内容提取到当前目录中。

tar -xvf archive.tar documents/work/budget.doc

从归档文件archive.tar中仅提取文件document / work / budget.doc。产生详细的输出。

tar -xvf archive.tar documents/work/

从归档文件archive.tar中仅提取目录document / work /及其包含的任何文件。产生详细的输出。

tar -xvf archive.tar --wildcards '*.doc'

从存档archive.tar中仅提取扩展名为 .doc的文件。该--wildcards选项告诉焦油解释通配符中要提取的文件的名称; 文件名(* .doc)用单引号引起来,以防止通配符(*)被shell错误地扩展。

tar -rvf archive.tar documents/work/budget.doc

将文件document / work / budget.doc添加到现有档案archive.tar中。在[R选项是一样的长选项--append。

tar -uvf archive.tar documents/work/budget.doc

仅当文件/work/budget.doc文件比归档文件中已有的版本新(或归档文件中不存在)时才将其添加到归档文件archive.tar中。在这里,u与长选项--update相同。

tar -cf - documents/work/ | wc -c

估计目录documents / work档案的文件大小,但不要创建该文件。在这里,归档文件被指定为破折号(“ - ”),它告诉tar将其归档输出发送到标准输出,而不是磁盘上的文件。然后,将此输出通过管道传递给wc命令,该命令报告接收到的输入中有多少字节(-c)。

tar -czf DogPhotos.tar.gz --exclude='kitty.jpg' MyPetPhotos

创建DogPhotos.tar.gz包含的所有文件的MyPetPhotos没有kitty.jpg照片。

tar tf hope.tar.gz | grep myfile.txt

在hope.tar.gz文件中搜索文件myfile.txt,然后列出该文件的完整路径。返回的结果类似于下面的行。

tar -zxvf hope.tar.gz computerhopehope/homedir/public_html/data/myfile.txt

在上面的示例中,tar命令将从hope.tar.gz中提取一个文件myfile.txt。通过使用前面显示的示例,确定了此文件的完整路径。

tar -cf archive.tar file1 file2

Create archive archive.tar containing files file1 and file2. Here, the c tells tar you will be creating an archive; the f tells tar that the next option (here it's archive.tar) will be the name of the archive it creates. file1 and file2, the final arguments, are the files to be archived.

tar -tvf archive.tar

List the files in the archive archive.tar verbosely. Here, the t tells tar to list the contents of an archive; v tells tar to operate verbosely; and f indicates that the next argument will be the name of the archive file to operate on.

tar -xf archive.tar

Extract the files from archive archive.tarx tells tar to extract files from an archive; f tells tar that the next argument will be the name of the archive to operate on.

tar -xzvf archive.tar.gz

Extract the files from gzipped archive archive.tar.gz verbosely. Here, the z tells tar that the archive will be compressed with gzip.

tar -cf archive.tar mydir/

Creates an archive of the directory mydir.

tar -czf archive.tar.gz mydir/

Creates an gzip-compressed archive of the directory mydir.

tar -zxvf myfile.tar.gz

Extract the contents of the myfile.tar.gz into the current directory.

tar -xvf archive.tar documents/work/budget.doc

Extract only the file documents/work/budget.doc from the archive archive.tar. Produce verbose output.

tar -xvf archive.tar documents/work/

Extract only the directory documents/work/, and any files it contains, from the archive archive.tar. Produce verbose output.

tar -xvf archive.tar --wildcards '*.doc'

Extract only files with the extension .doc from the archive archive.tar. The --wildcards option tells tar to interpret wildcards in the name of the files to be extracted; the file name (*.doc) is enclosed in single-quotes to protect the wildcard (*) from being expanded incorrectly by the shell.

tar -rvf archive.tar documents/work/budget.doc

Add the file documents/work/budget.doc to the existing archive archive.tar. The r option is the same as the long option --append.

tar -uvf archive.tar documents/work/budget.doc

Add the file documents/work/budget.doc to the archive archive.tar only if it is newer than the version already in the archive (or does not yet exist in the archive). Here, u is the same as the long option --update.

tar -cf - documents/work/ | wc -c

Estimate the file size of an archive of the directory documents/work, but do not create the file. Here, the archive file is specified as a dash ("-"), which tells tar to send its archived output to the standard output rather than a file on disk. This output is then piped to the wc command, which reports how many bytes (-c) were in the input it received.

tar -czf DogPhotos.tar.gz --exclude='kitty.jpg' MyPetPhotos

Create DogPhotos.tar.gz of all files contained in the MyPetPhotos without the kitty.jpg photo.

tar tf hope.tar.gz | grep myfile.txt

Search the hope.tar.gz file for the file myfile.txt and list the full path of the file. The returned results would resemble the line shown below.

computerhopehope/homedir/public_html/data/myfile.txt

tar -zxvf hope.tar.gz computerhopehope/homedir/public_html/data/myfile.txt

In the above example, the tar command would extract the one file myfile.txt from the hope.tar.gz. The full path to this file was determined by using the example shown earlier.

查看英文版

查看中文版