TAR(1)

名字
tar - tar 档案文件管理程序的 GNU 版本。

总览
tar <操作参数> [选项]

操作参数:
[-]A --catenate --concatenate
[-]c --create
[-]d --diff --compare
[-]r --append
[-]t --list
[-]u --update
[-]x --extract --get
--delete

常用选项:
-C, --directory 目录
-f, --file 文件
-j, --bzip2
-J, --xz
-p, --preserve-permissions
-v, --verbose
-z, --gzip

所有选项:
[ -a, --auto-compress ] [ --add-file 文件 ] [ --anchored ] [ --atime-preserve ] [ -b, --blocking-factor N ] [ -B, --read-full-records ] [ --backup[=备份类型] ] [ --block-compress ] [ -C, --directory 目录 ] [ --checkpoint ] [ --delay-directory-restore ] [ --exclude 文件或目录 ] [ --exclude-caches ] [ --exclude-caches-all ] [ --exclude-caches-under ] [ --exclude-tag 文件 ] [ --exclude-tag-all 文件 ] [ --exclude-tag-under 文件 ] [ -f, --file [主机名:]文件 ] [ -F, --info-script 文件, --new-volume-script 文件 ] [ --force-local ] [ --format 格式 ] [ -g, --listed-incremental 快照 ] [ -G, --incremental ] [ --group 组 ] [ -h, --dereference ] [ --help ] [ -i, --ignore-zeros ] [ -I, --use-compress-program 程序 ] [ --ignore-case ] [ --ignore-command-error ] [ --ignore-failed-read ] [ --index-file 文件 ] [ -j, --bzip2 ] [ -J, --xz ] [ -k, --keep-old-files ] [ -K, --starting-file 文件 ] [ --keep-newer-files ] [ -l, --check-links ] [ -L, --tape-length N ] [ --lzip ] [ --lzma ] [ --lzop ] [ -m, --touch, --modification-time ] [ -M, --multi-volume ] [ --mode 权限 ] [ --mtime 日期 ] [ -N, --after-date 日期, --newer 日期 ] [ --newer-mtime 日期 ] [ --no-anchored ] [ --no-auto-compress ] [ --no-delay-directory-restore ] [ --no-ignore-case ] [ --no-ignore-command-error ] [ --no-overwrite-dir ] [ --no-quote-chars ] [ --no-recursion ] [ --no-same-permissions ] [ --no-unquote ] [ --no-wildcards ] [ --no-wildcards-match-slash ] [ --null ] [ --numeric-owner ] [ -o, --old-archive, --portability, --no-same-owner ] [ -O, --to-stdout ] [ --occurrence 次数 ] [ --one-file-system ] [ --overwrite ] [ --overwrite-dir ] [ --owner 用户 ] [ -p, --same-permissions, --preserve-permissions ] [ -P, --absolute-names ] [ --pax-option 关键字列表 ] [ --posix ] [ --preserve ] [ --quote-chars 字符串 ] [ --quote-style 风格 ] [ -R, --block-number ] [ --record-size 字节数 ] [ --recursion ] [ --recursive-unlink ] [ --remove-files ] [ --restrict ] [ --rmt-command 命令 ] [ --rsh-command 命令 ] [ -s, --same-order, --preserve-order ] [ -S, --sparse ] [ --same-owner ] [ --show-defaults ] [ --show-omitted-dirs ] [ --show-transformed-names, --show-stored-names ] [ --strip-components 目录层数 ] [ --suffix 后缀 ] [ -T, --files-from 文件 ] [ --test-label ] [ --to-command 命令 ] [ --transform sed表达式 ] [ --totals ] [ -U, --unlink-first ] [ --unquote ] [ --utc ] [ -v, --verbose ] [ -V, --label 名称 ] [ --version ] [ --volno-file 文件 ] [ -w, --interactive, --confirmation ] [ -W, --verify ] [ --wildcards ] [ --wildcards-match-slash ] [ -X, --exclude-from 文件 ] [ -z, --gzip, --gunzip, --ungzip ] [ -Z, --compress, --uncompress ] [ -[0-7][lmh] ]

描述
这是tar的GNU版本的手册页。 tar是一个用于储存或提取tar文件的程序。 tar文件可放在磁盘中， 也可以存为普通文件。 tar 的第一个参数必须是操作参数A、c、d、r、t、u、x 中的一个， 参数后面可跟着任意可选选项。 tar的最后一个参数是你要处理的文件或目录的名字。 如果你指定了一个目录， 该目录的所有子目录都将被加入存档。

应用举例

tar -xvf foo.tar
    提取 foo.tar 文件并显示提取过程

tar -xzf foo.tar.gz
    提取用 gzip 压缩的文件 foo.tar.gz

tar -cjf foo.tar.bz2 bar/
    用 bzip 为目录 bar 创建一个叫做 foo.tar.bz2存档

tar -xjf foo.tar.bz2 -C bar/
    把用 bzip 压缩的文件 foo.tar.bz2 提取到 bar 目录

tar -xzf foo.tar.gz blah.txt
    把文件 blah.txt 从 foo.tar.gz 中提取出来

注意: 当压缩或提取的时候， 压缩类型选项常常是不必需的， 因为tar会根据文件的后缀自动选择压缩类型。

参数说明

下列参数中必须有至少一个被使用：

-A, --catenate, --concatenate
    将一存档与已有的存档合并

-c, --create
    创建一个新的存档

-d, --diff, --compare
    比较存档与相应的未存档文件的不同之处

-r, --append
    将文件附加到存档结尾

-t, --list
    列出存档中文件的目录

-u, --update
    仅将较新的文件附加到存档中

-x, --extract, --get
    从存档提取文件

--delete
    把指定文件从存档中删除（不要用于磁带！）

常用选项

-C, --directory 目录
    提取存档到指定目录

-f, --file [主机名:]文件
    指定存档或设备中的文件 (默认是 "-"， 表示 标准输入/输出)

-j, --bzip2
    用 bzip2 处理存档; 用于 .bz2 文件

-J, --xz
    用 xz 处理存档; 用于 .xz 文件

-p, --preserve-permissions
    提取所有保护信息

-v, --verbose
    显示文件处理过程

-z, --gzip, --ungzip
    用 gzip 处理存档; 用于 .gz 文件

所有选项

-a, --auto-compress
    根据存档后缀来选择压缩程序

--add-file 文件
    添加指定文件到存档 (对以下标线开头的文件很有用)

--anchored
    patterns will match the start of file names

--atime-preserve
    不改变存档中文件的访问时间

-b, --blocking-factor N
    指定块大小为 Nx512 字节（默认N=20)

-B, --read-full-blocks
    读取时重组块 (用于读取4.2BSD pipes)

--backup[=备份类型]
    备份文件而不是删除它们, 备份类型有simple、numbered等

--block-compress
    让磁带的输出结果成块输出

-C, --directory 目录
    提取文档到指定目录

--checkpoint
    读取存档时显示目录名

--delay-directory-restore
    延迟对已提取目录的修改时间和权限的设定， 直到提取结束

--exclude 文件或目录
    排除指定文件或目录

--exclude-caches
    排除带有 缓存目录 标记的目录

--exclude-tag 文件
    排除包含指定文件的目录

-f, --file [主机名:]文件
    指定存档或设备中的文件 (默认是 "-"， 表示 标准输入/输出)

-F, --info-script 文件, --new-volume-script 文件
    在每卷磁带的结尾运行脚本 （会应用--multi-volume选项）

--force-local
    存档文件是本地的， 即使它的名称中含有冒号

--format FORMAT
    选择创建存档的格式
    v7 - Unix V7
    oldgnu - GNU tar <=1.12
    gnu - GNU tar 1.13
    ustar - POSIX.1-1988
    posix - POSIX.1-2001

-g, --listed-incremental 快照
    创建/列出/提取 新GNU格式的增量备份

--group 组
    将添加到存档的文件的组标识设置为指定组， 而不是源文件所在的组; 这个选项对提取无效

-G, --incremental
    创建/列出/提取 旧GNU格式的增量备份

-h, --dereference
    不存入符号链接; 存入链接指向的文件

--help
    显示像本手册这样的帮助信息， 但不像这么详细

-i, --ignore-zeros
    忽略存档中的 0 字节块 （那通常意味着文件结束)

-I, --use-compress-program 程序
    通过指定程序访问存档 (该程序通常是一个压缩程序; 它需能接受 -d 参数)

--ignore-case
    排除文件时不区分大小写

--ignore-command-error
    忽略子程序的退出代码

--ignore-failed-read
    遇到不可读文件的非零状态不退出

--index-file 文件
    将处理过程信息输出到指定文件， 而不是输出到标准输出

-j, --bzip2
    用 bzip2 处理存档， 用于 .bz2 文件

-J, --xz
    用 xz 处理存档， 用于 .xz 文件

-k, --keep-old-files
    保留已存在的文件; 不用存档中的文件覆盖它们

-K, --starting-file FILE
    从存档中的指定文件处开始

--keep-newer-files
    不覆盖比存档新的文件

-l, --check-links
    如果文件系统中文件的硬链接数和存档中记录的不同， 则发出警告

-L, --tape-length N
    在写入了N*1024字节后， 更换磁带

-m, --touch, --modification-time
    不提取文件的修改时间

-M, --multi-volume
    创建/列出/提取 多卷存档

--mode 权限
    添加文件时应用指定的权限 (参看 chmod(1))

--mtime 日期
    当创建存档时， 使用指定日期作为存档成员的修改日期， 而不是使用文件的实际修改时间

-N, --after-date 日期, --newer 日期
    只存储在指定日期后有修改或状态更新 (权限， ACLs， 扩展属性， ...)的文件

--newer-mtime 日期
    和 --newer 类似， 但是只存储指定日期后有修改的文件

--no-anchored
    匹配任意‘/’后字符项--exclude一起使用

--no-auto-compress
    不根据存档后缀来决定使用哪个压缩程序

--no-delay-directory-restore
    在目录中的所有文件都被提取完成时， 就设定该目录的修改时间和权限; 这是默认设置

--no-ignore-command-error
    对以非零状态终止的子程序的显示警告

--no-ignore-case
    用 --exclude 匹配时区分大小写

--no-overwrite-dir
    从存档中提取文件时， 保留已存在目录的元数据。

--no-quote-chars 字符串
    把指定字符串中的字符从--quote-chars选项指定的字符中去除

--no-recursion
    不递归进入子目录

--no-same-permissions
    提取时应用用户的umask， 而不是用已记录的权限

--no-unquote
    将所有输入文件或成员的名字作为普通文字， 不解释转义序列

--no-wildcards
    不对--exclude使用通配符

--no-wildcards-match-slash
    --exclude的通配符不匹配斜杠(/)

--null
    --files-from读取以空值终止的名字， 禁用--directory

--numeric-owner
    总是用数字作为 用户/组 的名字

-o, --old-archive, --portability
    相当于--format=v7； 当创建存档时-o选项表示这个行为 （已弃用的行为）

-o, --no-same-owner
    提取时不恢复所有权； 当提取时-o选项表示这个行为

-O, --to-stdout
    将文件提取到标准输出

--occurrence 次数
    只处理指定次数每个已被命名的文件的在操作中的出现； 用于--delete, --diff, --extract, 或 --list

--one-file-system
    创建存档时停留在本地文件系统

--overwrite
    提取时覆盖已存在的文件和目录中的元数据

--overwrite-dir
    提取时覆盖目录中的元数据

--owner 用户
    将文件所有者设为指定用户， 而不是原文件的所有者； 这个选项对提取无效

-p, --preserve-permissions, --same-permissions
    提取所有保护信息

-P, --absolute-names
    将文件名开头的“/”符号看作文件名的一部分

--pax-option 关键字列表
    修改tar处理扩展头关键字的方式， 只用于POSIX.1-2001存档

--posix
    相当于--format=posix

--preserve
    相当于--preserve-permissions加上--same-order

--quote-chars 字符串
    总是标出指定字符串中包含的的字符， 即使已选择的标识风格不标识它们

--quote-style 风格
    设定显示成员和文件名称的标识风格

-R, --record-number
    显示存档中每条信息的记录数字

--record-size 字节数
    访问存档时每条记录使用指定的字节数

--recursion
    递归进入目录

--recursive-unlink
    提取目录之前先把存在的相同名称的目录删除

--remove-files
    把文件加入到存档后删除这些文件

--restrict
    禁用一些有潜在害处的选项； 目前这会禁用多卷菜单中对shell的调用

--rmt-command 命令
    用指定的命令代替默认的/usr/sbin/rmt

--rsh-command 命令
    用指定的远程命令代替rsh(1)

-s, --same-order, --preserve-order
    名称列表会被排序以匹配存档

-S, --sparse
    高效地处理稀疏文件

--same-owner
    以相同的所有权创建提取出的文件

--show-defaults
    显示tar使用的默认选项

--show-omitted-dirs
    显示提取时tar跳过的目录

--show-transformed-names, --show-stored-names
    应用了任何sed转换之后， 显示文件或成员名字

--strip-components 目录层数
    在提取前， 把文件从前往后指定层数的目录都从提取路径中去掉， 如果文件包含在指定层数中， 则不被提取

--suffix 后缀
    备份文件时， 使用指定的后缀， 而不是使用默认后缀‘～’

-T, --files-from 文件
    从指定文件中获得要提取或创建的存档的名字

--test-label
    读取卷标； 如果一个词被指定了， 则测试它是否匹配这个卷标

--to-command 命令
    提取期间， 将提取的文件导入到指定命令的标准输入

--totals
    显示用--create参数写入的总字节数

--transform sed表达式
    用sed的转换表达式转换文件或成员的名字

-U, --unlink-first
    提取文件之前，删除已存在的与之同名的文件

--unquote
    不标识输入文件或成员的名字； 这是默认选项

--utc
    以UTC时间显示文件的修改日期

-v, --verbose
    列出文件的处理情况

-V, --label 名称
    用指定卷名创建存档

--version
    显示tar程序的版本信息

--volno-file 文件
    保持追踪指定文件中多卷存档的卷编号； 和--multi-volume一起使用

-w, --interactive, --confirmation
    每一个动作都要求确认

-W, --verify
    写完存档后对其进行校验

--wildcards
    对--exclude用通配符

--wildcards-match-slash
    --exclude的通配符匹配斜杠(/)

-X, --exclude-from 文件

    排除列在指定文件中的文件

-z, --gzip, --gunzip, --ungzip
    用gzip对存档进行操作

-Z, --compress, --uncompress
    用compress对存档进行操作

-[0-7][lmh]
    指定驱动器[0-7]和压缩密度[低中高]

BUGS
GNU世界的人， 通常不喜欢man手册， 而是写文档代替之。 tar的维护者也是如此。 所以， 这个man手册页可能会不完全， 或者不够新， 它被包含在Gentoo的portage树中， 因为man是一个非常好的工具：）。 这个man手册页最初取自Debian Linux， 从那时起已在这里被很好地更新。

报告 BUGS
请通过 http://bugs.gentoo.org/ 报告Bug。 翻译问题请联系译者或到 https://github.com/lidaobing/manpages-zh/ 提交问题

作者
Debian Linux http://www.debian.org/
Mike Frysinger <vapier@gentoo.org>

译者
CMPP 中文手册页计划 http://cmpp.linuxforum.net (2001/08/08)
Saigut <gosaigut@gmail.com> (2013/11/09)

中文版最新更新
2014/10/04

跋
本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划：https://github.com/man-pages-zh/manpages-zh