Linux(Centos 7.6)命令详解:tar

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

1.命令作用

命令tar将许多文件一起保存到单个磁带或磁盘存档中,并且可以从存档中恢复单个文件(GNU 'tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.)。

2.命令语法

Usage: tar [OPTION...] [FILE]...

2.简单举例

 tar -cf archive.tar foo bar,将文件foo和bar,创建一个tar格式的归档(archive.tar)。
 tar -tvf archive.tar,详细列出archive.tar中的所有文件。
 tar -xf archive.tar,从archive.tar中提取所有文件。

3.参数详解

OPTION:

①主要运行方式:

  • -A, --catenate, --concatenate,将tar文件附加到另一个tar文件(归档文件)中,需与-f 参数一起使用;仅可一个一个tar文件附加,不可多个tar文件一次性附加;
  • -c, --create,创建一个新的归档文件,需与-f 参数一起使用;
  • -d, --diff, --compare,查找归档中文件和系统上解压后的文件之间的差异,系统上解压后的文件多了不会输出,如果解压后的文件少了则会输出提示,需与-f、-v 参数一起使用;
  • --delete,从存档中删除文件或者目录,删除的文件和目录可以使用tar -tf 查看;
  • -r, --append,将文件追加到存档文件末尾,需与-f 参数一起使用;
  • -t, --list,列出存档的内容列表,需与-f 参数一起使用;
  • --test-label,测试归档卷标签并退出,用于自动化脚本验证归档的存在和卷标是否符合要求;
  • -u, --update,只追加比归档文件中比列表文件更新的文件,需与-f、-v 参数一起使用;使用-tf 查看更新后的归档文件列表,是追加方式,即列表中存在多个不同版本但相同名称的文件;注意解压后仅只保留版本最新的文件;
  • -x, --extract, --get,从存档中提取全部文件,或者指定文件名称进行提取,通常与-f、-v 参数一起使用

②操作修饰符:

  • --check-device,在创建或增量存档时,检查设备(默认)
  • -g, --listed-incremental=FILE,处理新GNU格式的增量归档,需要保留所有的归档,增量归档解压需要指定快照文件,全量归档加多个增量归档可以进行备份;
  • -G, --incremental,处理旧GNU格式增量备份,与-g用法类似
  • --ignore-failed-read,解压归档时,当归档中有不可读的文件(归档存在损坏情况),不会因为非零退出,而是继续提取归档中获取文件,对损坏的归档解压场景很有用;默认情况下遇到错误直接退出;简而言之即忽略错误继续解压,默认遇到错误直接退出;
  • --level=NUMBER,指定全量归档的增量归档文件的转储级别,全量为--level=0,增量依次为1、2、3、...,通常与-g参数一起使用;
  • -n, --seek,归档可查找,tar -cn ...tar显示tar文件中所有文件内容;
  • --no-check-device,在创建或增量归档时,不检查设备;
  • --no-seek,归档不可查;
  • --occurrence[=NUMBER],只处理存档中每个文件的第number次出现;此选项仅在与子命令---delete、--diff、--extract或--list一起使用时有效,并且当在命令行上或通过-T选项给出文件列表时有效;NUMBER默认为1
  • --sparse-version=MAJOR[.MINOR],设置要使用的稀疏格式的版本(暗含--sparse)
  • -S, --sparse,有效地处理稀疏文件

③输入控制覆盖寄存器:

  • -k, --keep-old-files,提取时不提取系统中已存在的现有文件,将其视为错误
  • --keep-directory-symlink,提取时保留到目录的现有符号链接,tar默认会保留符号链接,与--dereference参数相反
  • --keep-newer-files,提取时不提取系统中现有文件,比归档中文件版本新,或者与归档中文件版本一致的文件;即如果归档中有新版本的文件会被提取覆盖系统中的现有文件;
  • --no-overwrite-dir,提取归档时,保留已存在目录的元数据(比如用户和读写权限);只有系统上存在多层目录时才有效,且对最内层目录无效;可使用stat dir查看,其中Access、Modify、Change时间会有所变化;
  • --overwrite,提取归档时,覆盖已存在的文件;
  • --overwrite-dir,提取归档时,覆盖已存在目录的元数据(默认),与--no-overwrite-dir效果相反;
  • --recursive-unlink,在提取目录之前去除目录递归(删除目录文件夹),无明显效果,与默认差不多;
  • --remove-files,将文件添加到存档后删除文件;同样适用于目录归档
  • --skip-old-files,提取时不要替换现有文件,静默地跳过它们;与-k类似;
  • -U, --unlink-first,在对每个文件进行提取之前先删除它;
  • -W, --verify,在写入归档文件后尝试验证它;

④选择输出流:

  • --ignore-command-error,忽略命令错误而导致执行退出;主要处理外部压缩工具gzip、bzip2时的错误怎么处理,启动参数会跳过错误继续执行,未启动参数报错后立即终止压缩/解压;
  • --no-ignore-command-error,将非零退出视为错误,与--ignore-command-error相反;
  • -O, --to-stdout,将文件提取到标准输出
  • --to-command=COMMAND,管道提取文件到另一个程序

⑤文件属性的处理:

  • --atime-preserve[=METHOD],保留对转储文件的访问时间,或者通过恢复读取后的时间(METHOD='replace',默认)或不首先设置时间(METHOD='system');测试无效果;
  • --delay-directory-restore,将解压目录的修改次数和权限设置延迟到解压结束,无效果;
  • --group=NAME,创建归档时,强制NAME作为添加文件的组权限名称;
  • --mode=CHANGES,强制(符号)模式,对新增文件的更改;无法使用,没说明模式可设置哪些参数;
  • --mtime=DATE-OR-FILE,创建归档时,设置归档中文件的mtime为DATE-OR-FILE;
  • -m, --touch,不提取文件修改时间;
  • --no-delay-directory-restore,取消--delay-directory-restore选项的效果,无效果;
  • --no-same-owner,按照自己的方式提取文件,即强制文件归属当前用户(默认为普通用户);
  • --no-same-permissions,在从归档文件中提取权限时应用用户的umask(默认为普通用户);
  • --numeric-owner,始终使用数字作为用户/组名;
  • --owner=NAME,创建归档时,强制NAME作为添加文件的所有者;
  • -p, --preserve-permissions, --same-permissions,提取有关文件权限的信息(默认为超级用户),测试无效果;
  • --preserve,和-p和-s一样,提示已经不再使用;
  • --same-owner,尝试提取与存档中存在的所有权相同的文件(默认为超级用户)
  • -s, --preserve-order, --same-order,成员参数的列出顺序与存档中的文件相同,测试无效果;

⑥扩展文件属性的处理(通常不会使用到):

  • --acls,启用POSIX acl支持
  • --no-acls,关闭POSIX acl支持
  • --no-selinux,禁用SELinux上下文支持
  • --no-xattrs,禁用扩展属性支持
  • --selinux,启用SELinux上下文支持
  • --xattrs,启用扩展属性支持
  • --xattrs-exclude=MASK,指定xattr键的排除模式
  • --xattrs-include=MASK,为xattr键指定包含模式

⑦设备选择和切换:

  • -f, --file=ARCHIVE,使用归档文件或归档设备
  • --force-local,归档文件是本地的,即使它有冒号;通常冒号是远程文件的书写格式,使用该参数,强制将带有冒号的文件名称视为本地文件;
  • -F, --info-script=NAME, --new-volume-script=NAME,在每个磁带的末尾运行脚本(暗含-M)
  • -L, --tape-length=NUMBER,写入NUMBER * 1024字节后更改磁带
  • -M, --multi-volume,创建/列表/提取多卷存档
  • --rmt-command=COMMAND,使用给定的rmt命令而不是rmt
  • --rsh-command=COMMAND,使用远程命令代替rsh
  • --volno-file=FILE,使用/update文件中的卷号

⑧装置块Device blocking:

  • -b, --blocking-factor=BLOCKS,BLOCKS x每条记录512字节
  • -B, --read-full-records,读取时重新阻塞(4.2BSD管道)
  • -i, --ignore-zeros,忽略归档中的归零块(意味着EOF)
  • --record-size=NUMBER,每条记录的字节数,512的倍数

⑨档案格式选择:

  • -H, --format=FORMAT,创建给定格式的存档;FORMAT是下列选项之一:
    • gnu        GNU tar 1.13.x format(默认格式,支持长文件名、大文件及扩展元数据)
    • oldgnu   GNU format as per tar <= 1.12
    • pax        POSIX 1003.1-2001 (pax) format
    • posix      same as pax(跨平台兼容性好,但功能限制多)
    • ustar      POSIX 1003.1-1988 (ustar) format
    • v7          old V7 tar format
  • --old-archive, --portability,与--format=v7相同
  • --pax-option=keyword[[:]=value][,keyword[[:]=value]]...,控制pax的关键字,需要与--format=pax一起使用,keyword=value可设置为"charset=UTF-8"、"mtime:=%s.%N"、"delete=uid"、"delete=gid"
  • --posix,与--format=posix相同
  • -V, --label=TEXT,创建归档时定义一个标签为TEXT;在查看归档内容(-t)和提取归档时显示标签TEXT内容;

⑩压缩选项:

  • -a, --auto-compress,使用归档后缀来确定压缩程序
  • -I, --use-compress-program=PROG,通过PROG压缩方式归档(必须接受-d),简言之通过-l指定压缩方式,PROG可取值bzip2、xz、lzip;
  • -j, --bzip2,通过bzip2压缩归档文件,归档命名后缀为.tar.bz2
  • -J, --xz,通过xz压缩归档文件,归档命名后缀为.tar.xz
  • --lzip,通过lzip压缩归档文件,归档命名后缀为.tar.lz;测试报错
  • --lzma,通过lzma压缩归档文件,归档命名后缀为.tar.lzma;测试报错
  • --lzop,通过lzma压缩归档文件,归档命名后缀为.tar.lzo
  • --no-auto-compress,不使用归档后缀来确定压缩程序,与-a参数相反
  • -z, --gzip, --gunzip, --ungzip,通过gzip压缩归档文件,归档命名后缀为.tar.gz
  • -Z, --compress, --uncompress,通过compress压缩归档文件,归档命名后缀为.tar.Z

⑪本地文件选择:

  • --add-file=FILE,将给定的文件添加到存档(如果其名称以破折号开头,则很有用);测试发现不是追加,是替换效果
  • --backup[=CONTROL],删除前备份,选择版本控制;提取压缩归档时,系统已存在文件进行版本控制和备份,CONTROL可取值有none / off(不备份直接覆盖,默认值)、numbered / t(创建带数字的后缀备份)、nil / existing(如之前有带数字的后缀就继续数字备份,否者使用简单后缀)、never / simple(简单后缀)
  • -C, --directory=DIR,更改为目录DIR,而不是默认的当前目录
  • --exclude=PATTERN,排除文件,以PATTERN形式给出(创建/提取归档都适用)
  • --exclude-backups,排除备份和锁定文件
  • --exclude-caches,排除包含CACHEDIR的目录内容。TAG,除了标记文件本身
  • --exclude-caches-all,排除包含CACHEDIR.TAR的目录
  • --exclude-caches-under,排除包含CACHEDIR.TAR目录下的所有内容
  • --exclude-tag=FILE,排除包含FILE的目录的内容,除了FILE本身
  • --exclude-tag-all=FILE,排除包含FILE的目录
  • --exclude-tag-under=FILE,排除包含FILE的目录下的所有内容
  • --exclude-vcs,排除版本控制系统目录;归档时会自动跳过.git .svn .hg等版本控制目录及其目录下所有的文件和目录
  • -h, --dereference,创建归档时,将软链接转储为它们指向的实际文件;即软链接会变成实际的文件或者目录;
  • --hard-dereference,创建归档时,将硬链接转储为它们所引用的文件;即硬链接会变成实际的文件或者目录;
  • -K, --starting-file=MEMBER-NAME,提取归档时,从MEMBER-NAME开始提取;MEMBER-NAME名称可以通过tar -tf查看,-tf查看时也可以使用该参数;
  • --newer-mtime=DATE,仅比较数据更改时的日期和时间
  • --no-null,-T参数使用时,指定文件命令列表的分隔方式,该方式为换行\n,为默认值

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆是浪个

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值