fbpx
维基百科

tar

tarUnix类Unix系统上的归档打包工具,可以将多个文件合并为一个文件,打包后的文件名亦为“tar”。目前,tar文件格式已经成为POSIX标准,最初是POSIX.1-1988,目前是POSIX.1-2001。本程序最初的设计目的是将文件备份到磁带上(tape archive),因而得名tar。

tar
GNU tar 1.16版顯示出三種常用的Tarball(圖中紅字)
扩展名
.tar
互联网媒体类型
application/x-tar
统一类型标识public.tar-archive
格式类型文件归档器
使用容器gzip, bzip2, LZMA, xz, lzop, compress
免费格式?

版本 编辑

常用的tar是自由软件基金会开发的GNU版,目前的稳定版本是1.33,发布于2021年1月7日 (2021-01-07)

缩写 编辑

 
Tar经常和别的压缩方式一起使用,比如gzip,来生成压缩文档。如图所示,结合档案中的文件被压缩为一个单位。

tar代表未压缩的tar文件。已压缩的tar文件则附加数据压缩格式的扩展名,如经过gzip压缩后的tar文件,扩展名为“.tar.gz”。由于受到DOS8.3文件名格式的限制,常使用下列缩写:

  • .tgz等价于.tar.gz
  • .tbz与tb2等价于.tar.bz2
  • .taz等价于.tar.Z
  • .tlz等价于.tar.lzma
  • .txz等价于.tar.xz

GNU tar的用法 编辑

命令格式是

tar 功能 選項 檔案 

可以将代表功能和选项的单个字母合并;当使用单个字母时,可以不用在字母前面加“-”。某些版本的tar要求严格按照功能字、选项字的顺序,而有些版本的tar并不在意这个顺序。

功能 编辑

  • -c,--create 建立新的tar檔案
  • -x,--extract,--get 解开tar文件
  • -t,--list 列出tar文件中包含的文件的信息
  • -r,--append 附加新的文件到tar文件中
  • -u,--update 用已打包的文件的较新版本更新tar文件
  • -A,--catenate,--concatenate 将tar文件作为一个整体追加到另一个tar文件中
  • -d,--diff,--compare 将文件系统里的文件和tar文件里的文件进行比较
  • --delete 删除tar文件里的文件。注意,这个功能不能用于已保存在磁带上的tar文件!

常用选项 编辑

  • -v,--verbose 列出每一步处理涉及的文件的信息,只用一个“v”时,仅列出文件名,使用两个“v”时,列出权限、所有者、大小、时间、文件名等信息。
  • -k,--keep-old-files 不覆盖文件系统上已有的文件
  • -f,--file [主机名:]文件名 指定要处理的文件名。可以用“-”代表标准输出标准输入
  • -P,--absolute-names 使用绝对路径
  • -j,--bzip2 调用bzip2执行压缩或解压缩。注意,由于部分老版本的tar使用-I实现本功能,因此,编写脚本时,最好使用--bzip2。
  • -J,--xz,--lzma 调用XZ Utils英语XZ Utils执行压缩或解压缩。依赖XZ Utils。
  • -z,--gzip,--gunzip,--ungzip 调用gzip执行压缩或解压缩
  • -Z,--compress,--uncompress 调用compress执行压缩或解压缩

应用示例 编辑

 tar -cvf home_backup.tar /home 

可以将/home目录下的所有文件打包入home_backup.tar文件中。理解这个命令时,请注意“home_backup.tar”实际上是-f选项的参数。tar默认记录相对路径,即使给出的是绝对路径,也会自动将代表根目录的“/”去掉,所以,在这个例子中,使用“/home”和“home”是相同的。要想使用绝对路径,请加上“P”选项,但一般不推荐使用绝对路径,原因之一是可能导致tar炸弹攻击。

 cd /home tar -cvf home_backup.tar * 

这也是一种制作备份的方法,但是不推荐这样做。因为tar在默认解压时,会将文件直接输出到当前目录下,而不会新建并输出到一个名为home的子目录,令到当前目录显得很凌乱。这也是一种形式的tar炸弹攻击。

 tar -tf home_backup.tar 

列出home_backup.tar文件里已被打包的文件。此时仅仅显示文件名。如果加上“v”,则能列出权限、所有者、大小、时间、文件名等信息。为防止tar炸弹攻击,应该养成解压前查看tar文件内容的好习惯。

 tar -xvf home_backup.tar 

在当前目录下解压home_back.tar。解压后的文件,其访问权限得到保留;其所有者是执行tar命令的用户,如果tar的执行者是root,则所有者是文件原来的所有者。 解压前,最好先查看tar文件的内容,以决定是否需要新建一个临时子目录安放。

 tar -xvf home_backup.tar home/test.c 

指定解压出test.c这个文件。解压过程中会自动创建home这个子目录。

其他 编辑

替代 编辑

由于备份策略的进步,逐渐采用dump、restore等工具替代tar。此后,tar多与gzip联用,弥补后者无法将多个文件打包的不足。这一用法沿用至今,新的tar版本已能自动调用多种压缩工具执行压缩。已压缩的tar文件也叫“tarball”。大部分自由软件的源代码采用tarball的形式发布。

tar炸弹 编辑

攻击者利用绝对路径,或者“tar -cf bomb.tar *”的方式创建的tar文件,然后诱骗受害者在根目录下解压,或者使用绝对路径解压。可能使受害系统上已有的文件被覆盖掉,或者导致当前工作目录凌乱不堪,这就是所谓的“tar炸弹”。因此,要养成良好的解压习惯:

  • 解压前用“t”查看tar的文件内容。
  • 拒绝使用绝对路径。
  • 新建一个临时子目录,然后在这个子目录里解压。

tar管道 编辑

管道用法:

 tar -c "${源目录}" | tar -xvC "${目标目录}" 

文件默认是标准输入/输出,不需再额外指定。可以将源目录下的文件及子目录复制到目标目录中,尤其适用于复制含有特殊文件(如软链接设备文件)的目录。

另見 编辑

  • JAR:製作的指令相似,但使用的是 ZIP 壓縮。

此條目没有列出任何参考或来源, 2023年6月12日, 維基百科所有的內容都應該可供查證, 请协助補充可靠来源以改善这篇条目, 无法查证的內容可能會因為異議提出而被移除, 此条目的主題是打包工具, 关于名为或tar的条目, 請見, 是unix和类unix系统上的归档打包工具, 可以将多个文件合并为一个文件, 打包后的文件名亦为, 目前, 文件格式已经成为posix标准, 最初是posix, 1988, 目前是posix, 2001, 本程序最初的设计目的是将文件备份到磁带上, tape, archive, 因而得名. 此條目没有列出任何参考或来源 2023年6月12日 維基百科所有的內容都應該可供查證 请协助補充可靠来源以改善这篇条目 无法查证的內容可能會因為異議提出而被移除 此条目的主題是tar打包工具 关于名为tar或TAR的条目 請見 TAR tar是Unix和类Unix系统上的归档打包工具 可以将多个文件合并为一个文件 打包后的文件名亦为 tar 目前 tar文件格式已经成为POSIX标准 最初是POSIX 1 1988 目前是POSIX 1 2001 本程序最初的设计目的是将文件备份到磁带上 tape archive 因而得名tar tarGNU tar 1 16版顯示出三種常用的Tarball 圖中紅字 扩展名 tar互联网 媒体类型application x tar统一类型标识public tar archive格式类型文件归档器使用容器gzip bzip2 LZMA xz lzop compress免费格式 是Tar開發者GNU計劃操作系统跨平臺类型文件归档器许可协议GNU通用公共许可证网站https www gnu org software tar 目录 1 版本 2 缩写 3 GNU tar的用法 3 1 功能 3 2 常用选项 4 应用示例 5 其他 5 1 替代 5 2 tar炸弹 5 3 tar管道 6 另見版本 编辑常用的tar是自由软件基金会开发的GNU版 目前的稳定版本是1 33 发布于2021年1月7日 2021 01 07 缩写 编辑 nbsp Tar经常和别的压缩方式一起使用 比如gzip 来生成压缩文档 如图所示 结合档案中的文件被压缩为一个单位 tar代表未压缩的tar文件 已压缩的tar文件则附加数据压缩格式的扩展名 如经过gzip压缩后的tar文件 扩展名为 tar gz 由于受到DOS8 3文件名格式的限制 常使用下列缩写 tgz等价于 tar gz tbz与tb2等价于 tar bz2 taz等价于 tar Z tlz等价于 tar lzma txz等价于 tar xzGNU tar的用法 编辑命令格式是 tar 功能 選項 檔案 可以将代表功能和选项的单个字母合并 当使用单个字母时 可以不用在字母前面加 某些版本的tar要求严格按照功能字 选项字的顺序 而有些版本的tar并不在意这个顺序 功能 编辑 c create 建立新的tar檔案 x extract get 解开tar文件 t list 列出tar文件中包含的文件的信息 r append 附加新的文件到tar文件中 u update 用已打包的文件的较新版本更新tar文件 A catenate concatenate 将tar文件作为一个整体追加到另一个tar文件中 d diff compare 将文件系统里的文件和tar文件里的文件进行比较 delete 删除tar文件里的文件 注意 这个功能不能用于已保存在磁带上的tar文件 常用选项 编辑 v verbose 列出每一步处理涉及的文件的信息 只用一个 v 时 仅列出文件名 使用两个 v 时 列出权限 所有者 大小 时间 文件名等信息 k keep old files 不覆盖文件系统上已有的文件 f file 主机名 文件名 指定要处理的文件名 可以用 代表标准输出或标准输入 P absolute names 使用绝对路径 j bzip2 调用bzip2执行压缩或解压缩 注意 由于部分老版本的tar使用 I实现本功能 因此 编写脚本时 最好使用 bzip2 J xz lzma 调用XZ Utils 英语 XZ Utils 执行压缩或解压缩 依赖XZ Utils z gzip gunzip ungzip 调用gzip执行压缩或解压缩 Z compress uncompress 调用compress执行压缩或解压缩应用示例 编辑tar cvf home backup tar home 可以将 home目录下的所有文件打包入home backup tar文件中 理解这个命令时 请注意 home backup tar 实际上是 f选项的参数 tar默认记录相对路径 即使给出的是绝对路径 也会自动将代表根目录的 去掉 所以 在这个例子中 使用 home 和 home 是相同的 要想使用绝对路径 请加上 P 选项 但一般不推荐使用绝对路径 原因之一是可能导致tar炸弹攻击 cd home tar cvf home backup tar 这也是一种制作备份的方法 但是不推荐这样做 因为tar在默认解压时 会将文件直接输出到当前目录下 而不会新建并输出到一个名为home的子目录 令到当前目录显得很凌乱 这也是一种形式的tar炸弹攻击 tar tf home backup tar 列出home backup tar文件里已被打包的文件 此时仅仅显示文件名 如果加上 v 则能列出权限 所有者 大小 时间 文件名等信息 为防止tar炸弹攻击 应该养成解压前查看tar文件内容的好习惯 tar xvf home backup tar 在当前目录下解压home back tar 解压后的文件 其访问权限得到保留 其所有者是执行tar命令的用户 如果tar的执行者是root 则所有者是文件原来的所有者 解压前 最好先查看tar文件的内容 以决定是否需要新建一个临时子目录安放 tar xvf home backup tar home test c 指定解压出test c这个文件 解压过程中会自动创建home这个子目录 其他 编辑替代 编辑 由于备份策略的进步 逐渐采用dump restore等工具替代tar 此后 tar多与gzip联用 弥补后者无法将多个文件打包的不足 这一用法沿用至今 新的tar版本已能自动调用多种压缩工具执行压缩 已压缩的tar文件也叫 tarball 大部分自由软件的源代码采用tarball的形式发布 tar炸弹 编辑 攻击者利用绝对路径 或者 tar cf bomb tar 的方式创建的tar文件 然后诱骗受害者在根目录下解压 或者使用绝对路径解压 可能使受害系统上已有的文件被覆盖掉 或者导致当前工作目录凌乱不堪 这就是所谓的 tar炸弹 因此 要养成良好的解压习惯 解压前用 t 查看tar的文件内容 拒绝使用绝对路径 新建一个临时子目录 然后在这个子目录里解压 tar管道 编辑 管道用法 tar c 源目录 tar xvC 目标目录 文件默认是标准输入 输出 不需再额外指定 可以将源目录下的文件及子目录复制到目标目录中 尤其适用于复制含有特殊文件 如软链接 设备文件 的目录 另見 编辑JAR 製作的指令相似 但使用的是 ZIP 壓縮 取自 https zh wikipedia org w index php title Tar amp oldid 77652616, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。