Linux 常用命令 - tar【归档与压缩】
简介
tar 这个名称来源于 “tape archive”,最初设计用于将文件归档到磁带上。现在,tar 命令已经成为 Linux 系统中最常用的归档工具,它可以将多个文件和目录打包成一个单独的归档文件,并且可以选择使用不同的压缩算法进行压缩,以减小归档文件的大小。tar 本身只是一个打包工具,不具备压缩功能。通过与其他压缩工具(如 gzip、bzip2、xz)结合使用,可以实现归档和压缩的双重目的。
使用方式
传统用法tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]
UNIX 风格用法tar -A [OPTIONS] ARCHIVE ARCHIVEtar -c [-f ARCHIVE] [OPTIONS] [FILE...]tar -d [-f ARCHIVE] [OPTIONS] [FILE...]tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...]tar -r [-f ARCHIVE] [OPTIONS] [FILE...]tar -u [-f ARCHIVE] [OPTIONS] [FILE...]tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]
GNU 风格用法tar {--catenate|--concatenate} [OPTIONS] ARCHIVE ARCHIVEtar --create [--file ARCHIVE] [OPTIONS] [FILE...]tar {--diff|--compare} [--file ARCHIVE] [OPTIONS] [FILE...tar --delete [--file ARCHIVE] [OPTIONS] [MEMBER...]tar --append [-f ARCHIVE] [OPTIONS] [FILE...]tar --list [-f ARCHIVE] [OPTIONS] [MEMBER...]tar --test-label [--file ARCHIVE] [OPTIONS] [LABEL...]tar --update [--file ARCHIVE] [OPTIONS] [FILE...]tar --update [-f ARCHIVE] [OPTIONS] [FILE...]tar {--extract|--get} [-f ARCHIVE] [OPTIONS] [MEMBER...]
常用选项
操作模式
以下列出的选项告诉 GNU tar
接下来要执行的操作是什么。且必须要提供且只能提供一个模式选项。对于后面无选项参数的含义取决于这里选择的模式。
-A, --catenate, --concatenate
:将一个归档文件追加到另一份归档文件末尾。其参数是要追加的归档文件名。所有归档文件必须与被追加的归档文件具有相同的格式,否则生成的归档文件可能无法在非GNU
的tar
实现中使用。-c, --create
:创建一个新的归档文件。参数是要归档的文件名。除非使用--no-recursion
选项,否则目录将被递归归档。-d, --diff, --compare
:比较归档文件和文件系统的差异。参数是可选的,用于指定要比较的归档成员。如果未给出,则假定为当前工作目录。--delete
:从归档文件中删除成员。参数是要删除的归档成员的名称。必须至少给出一个参数。此选项不能用于压缩的归档文件。-r, --append
:将文件追加到归档文件的末尾。参数的含义与-c
或--create
相同。-t, --list
:列出归档文件的内容。参数是可选的。如果给出,则指定要列出的成员的名称。--test-label
:测试归档卷标并退出。 如果没有参数,它会打印卷标(如果有)并以返回值0
退出。 如果给出一个或多个命令行参数,tar
会将卷标与每个参数进行比较。 如果找到匹配项,则以0
退出,否则以1
退出。 除非与-v
或--verbose
选项一起使用,否则不显示任何输出。-u, --update
:追加比归档文件中对应副本更新的文件。 参数的含义与-c
和-r
选项相同。-x, --extract, --get
:从归档文件中提取文件。 参数是可选的。 如果给出,则指定要提取的归档成员的名称。--show-defaults
:显示部分tar
选项的内置默认值并退出。-?, --help
:显示帮助信息。--usage
:列出可用的选项表。--version
:显示版本信息。
操作修饰符
--check-device
:创建增量归档时检查设备编号(默认)。-g, --listed-incremental=FILE
:处理新版GNU
格式的增量备份。FILE
是快照文件的名称,tar
在其中存储附加信息,用于确定自上次增量转储以来哪些文件已更改,以及如果有更改则必须再次转储。 如果在创建归档时FILE
不存在,则将创建它,并将所有文件添加到生成的归档文件中(级别 0 转储)。 要创建非零级别N
的增量归档,需创建在级别N-1
期间创建的快照文件的副本,并将其指定为FILE
。--hole-detection=METHOD
:使用METHOD
检测稀疏文件中的空洞。 此选项着隐含了--sparse
选项。METHOD
的有效值为seek
和raw
。 默认值为seek
,在不适用时回退到raw
。-G, --incremental
:处理旧版GNU
格式的增量备份。--ignore-failed-read
:遇到不可读的文件时不以非零值退出。--level=NUMBER
:为创建的列表式增量归档设置转储级别。 目前只有--level=0
有意义:它指示tar
在转储之前截断快照文件,从而强制执行 0 级转储。-n, --seek
:假定归档文件是可查找的。 通常,tar
会自动确定归档文件是否可以查找。 此选项旨在用于此类识别失败的情况。 仅当归档文件打开以供读取时(例如,使用--list
或--extract
选项)才生效。--no-check-device
:在创建增量式归档时不检查设备号。--no-seek
:假定归档文件不可查找。--occurrence[=N]
:仅处理归档中每个文件的第N
次出现。 此选项仅在与以下子命令之一一起使用且在命令行上或通过-T
选项给出文件列表时有效:--delete
、--diff
、--extract
或--list
,。 默认N
为1
。--restrict
:禁用一些潜在的危险选项。--sparse-version=MAJOR[.MINOR]
:设置要使用的稀疏格式的版本。 此选项隐含了--sparse
选项。 有效的参数值为0.0
、0.1
和1.0
。-S, --sparse
:高效处理稀疏文件。文件系统中的某些文件可能具有实际上从未写入的段(通常是 DBM 等系统创建的数据库文件)。 给定此选项后,tar
会尝试在归档文件之前确定文件是否为稀疏文件,如果是,则通过不转储文件的空部分来减小生成的归档文件的大小。
覆盖控制选项
这些选项指定了当在将文件提取到磁盘上已存在的副本时 tar
的操作。
-k, --keep-old-files
:提取文件时不替换已存在的文件。--keep-newer-files
:不替换比其归档副本更新的已存在的文件。--keep-directory-symlink
:提取时不替换指向目录的已存在的符号链接。--no-overwrite-dir
:保留现有目录的元数据。--one-top-level[=DIR]
:提取所有文件到DIR
或在没有提供参数的情况下将文件提取到以归档基本名为名称的子文件夹中(去除--auto-compress
可识别的标准压缩后缀)。--overwrite
:提取文件时覆盖已存在的文件。--overwrite-dir
:提取文件时覆盖现有目录的元数据(默认)。--recursive-unlink
:在提取目录之前,递归删除该目录中的所有文件。--remove-files
:将文件添加到归档后,从磁盘中删除这些文件。--skip-old-files
:提取时不要替换已存在的文件,且静默跳过它们。-U, --unlink-first
:在提取覆盖每个文件之前,先删除该文件。-W, --verify
:在写入归档后,验证该归档文件。
输出流选择
-
--ignore-command-error
:忽略子进程的退出码。 -
--no-ignore-command-error
:将子进程的非零退出码视为错误。 -
-O, --to-stdout
:将文件提取到标准输出。 -
--to-command=COMMAND
:将提取的文件通过管道传递给COMMAND
。参数COMMAND
是一个外部程序的可执行路径,可以包含命令行参数。tar
将会调用该程序,并将提取文件的内容通过标准输出传递给它。同时,以下环境变量也会被设置并传递给该程序:-
TAR_FILETYPE
:文件类型,单个字母表示,有以下可能:f
:普通文件d
:目录l
:符号链接h
:硬链接b
:块设备c
:字符设备
-
TAR_MODE
:文件模式,是一个八进制数字。 -
TAR_FILENAME
:文件名。 -
TAR_REALNAME
:文件在归档中存储的名称。 -
TAR_UNAME
:文件所有者的用户名。 -
TAR_GNAME
:文件所有者所在用户组的组名。 -
TAR_ATIME
:上次访问的时间。这是个十进制数,代表了自Epoch
以来所经过的秒数。如果归档提供了纳秒级别的精度,纳秒数将附加到时间戳的小数点后。 -
TAR_MTIME
:上次修改的时间。 -
TAR_CTIME
:上次文件状态改变的时间。 -
TAR_SIZE
:文件大小。 -
TAR_UID
:文件所有者的UID
。 -
TAR_GID
:文件所有者的GID
。
另外,以下变量包含了
tar
操作模式和被处理归档的信息:TAR_VERSION
:GNU tar
的版本号。TAR_ARCHIVE
:tar
正在处理的归档文件名称。TAR_BLOCKING_FACTOR
:当前块大小系数,即一个记录中 512 字节块的数量。TAR_VOLUME
:tar
正在处理的卷序号 (当读取的是多卷归档文件)。TAR_FORMAT
:正在处理的归档文件的格式。可以是以下值之一:gnu
、oldgnu
、posix
、ustar
、v7
。TAR_SUBCOMMAND
:一个简短的选项(带前导短划线),描述了tar
正在执行的操作。
-
文件属性处理
-
--atime-preserve[=METHOD]
:保留被归档文件的访问时间。可以是在读取文件后,恢复其原始的访问时间(METHOD=replace
默认)。或是从一开始就不设置访问时间(METHOD=system
)。 -
--delay-directory-restore
:延迟设置被提取文件夹的修改时间和权限到提取结束。该选项一般用于从一个具有非常规成员顺序的归档中提取文件。 -
--group=NAME[:GID]
:强制指定NAME
作为被添加文件的所属组。 如果没有提供GID
,则NAME
可以是组名或数字GID
。 在这种情况下,缺失的部分(GID
或组名)将从当前主机的组数据库中推断出来。 -
--group-map=FILE
:从FILE
文件中读取组转换映射。 空行将被忽略。 注释以#
符号开头,并延伸到行尾。FILE
中的每个非空行都定义了一个组的转换规则。 每行必须包含两个字段,用任意数量的空白字符分隔:OLDGRP NEWGRP[:NEWGID]
OLDGRP
为需要被转换的原始组。可以是有效的组名,也可以是以+
开头的GID
。NEWGRP
为转换后的新组。 如果未提供NEWGID
,那么NEWGRP
也必须是有效的组名或以+
开头的GID
。否则NEWGRP
和NEWGID
都不需要在系统组数据库中列出。最终,每个所有者组为
OLDGRP
的输入文件,在归档文件中将以NEWGRP
这个所有组和NEWGID
这个GID
进行存储。 -
--mode=CHANGES
:强制为添加的文件设置符号模式CHANGES
。 -
--mtime=DATE-OR-FILE
:为添加的文件设置修改时间mtime
。DATE-OR-FILE
可以是几乎任何格式的日期/时间字符串,也可以是现有文件的名称。 如果是文件名,则使用该文件的mtime
。 -
-m, --touch
:不提取文件的修改时间。 -
--no-delay-directory-restore
:取消前置的--delay-directory-restore
选项。 -
--no-same-owner
:以你自己的身份提取文件(普通用户的默认行为)。 -
--no-same-permissions
:在从归档文件中提取权限时,使用用户的umask
(普通用户的默认行为) -
--numeric-owner
:始终用数字代表用户/组名 -
--owner=NAME[:UID]
:强制指定NAME
作为被添加文件的所有者。 如果没有提供UID
,则NAME
可以是用户名或数字UID
。 在这种情况下,缺失的部分(UID
或用户名)将从当前主机的用户数据库中推断出来。当与--owner-map=FILE
选项一起使用时,此选项仅影响所有者未在FILE
中列出的文件。 -
--owner-map=FILE
:从FILE
文件中读取用户转换映射。空行将被忽略。 注释以#
符号开头,并延伸到行尾。FILE
中的每个非空行都定义了一个用户的转换规则。 每行必须包含两个字段,用任意数量的空白字符分隔:OLDUSR NEWUSR[:NEWUID]
OLDUSR
为需要被转换的原始用户。 可以是有效的用户名,也可以是以+
开头的UID
(用户ID
)。NEWUSR
为转换后的新用户。如果未提供NEWUID
,那么NEWUSR
也必须是有效的用户名或以+
开头的UID
。否则,NEWUSR
和NEWUID
都不需要在系统组数据库中列出。最终,每个所有者为
OLDUSR
的输入文件,在归档文件中将以NEWUSR
这个所有者名和NEWUID
这个UID
进行存储。 -
-p, --preserve-permissions, --same-permissions
:提取文件权限信息(超级用户的默认行为)。 -
--preserve
:等同于同时使用-p
和-s
选项。 -
--same-owner
:尝试以归档文件中存在的相同所有权提取文件(超级用户的默认行为)。 -
-s, --preserve-order, --same-order
:按照归档文件中文件出现的顺序提取文件。 -
--sort=ORDER
:创建归档文件时,根据ORDER
对目录条目进行排序。ORDER
可以是以下之一:none
、name
、inode
。默认值是
--sort=none
,它按照操作系统返回的顺序存储归档成员。使用
--sort=name
可以确保创建的归档文件中的成员排序是统一且可重现的。使用
--sort=inode
可以减少创建归档文件时进行的磁盘寻道次数,因此可以大大加快归档速度。 只有在底层系统提供必要的信息时,才支持此排序顺序。
扩展文件属性
--acls
:启用POSIX ACLs
支持。--no-acls
:禁用POSIX ACLs
支持。--selinux
:启用SELinux
环境支持。--no-selinux
:禁用SELinux
环境支持。--xattrs
:启用扩展属性支持。--no-xattrs
:禁用扩展属性支持。--xattrs-exclude=PATTERN
:指定排除扩展属性键值的模式。PATTERN
是一个POSIX
正则表达式。例如,--xattrs-exclude='^user.'
将排除来自user
命名空间的属性。--xattrs-include=PATTERN
:指定包含扩展属性键的模式。PATTERN
是一个POSIX
正则表达式。
设备选择与切换
-
-f, --file=ARCHIVE
:使用归档文件或设备ARCHIVE
。如果未提供此选项,tar
将首先检查环境变量TAPE
。 如果已设置,则将其值用作归档名称。否则,tar
将采用编译时默认值。 可以使用--show-defaults
选项或在tar --help
输出的末尾检查默认值。一个归档名称包含有冒号,其用于指定远程计算机上的文件或设备。冒号之前的部分被视为机器名或 IP 地址,冒号之后的部分为文件或设备路径名。例如:
--file=remotehost:/dev/sr0
。一个可选的用户名可以添加到主机名的前面,用户名和主机名之间用
@
符号分隔。默认情况下,远程主机通过
rsh
命令被访问。现在通常使用ssh
来代替。你可以通过提供以下命令行选项来做到这一点:--rsh-command=/usr/bin/ssh
。远程主机需要支持
rmt
命令。如果其路径名与tar
的默认值不匹配,则可以使用--rmt-command
选项来告诉tar
正确的路径。 -
--force-local
:无论是否提供冒号,都将归档文件视为本地文件。 -
-F, --info-script=COMMAND, --new-volume-script=COMMAND
:在每个卷结束时运行指定脚本COMMAND
(隐含-M
选项)。这个脚本可以包含参数,其启动时将继承tar
的环境变量以及以下变量:TAR_VERSION
:GNU tar
版本号。TAR_ARCHIVE
:tar
正在处理的归档名。TAR_BLOCKING_FACTOR
:当前的块系数,即一个记录中 512 字节块的个数。TAR_VOLUME
:tar
正在处理的卷序号(如果读取多卷归档文件)。TAR_FORMAT
:正在处理的归档文件的格式。 可以是以下值之一:gnu
、oldgnu
、posix
、ustar
、v7
。TAR_SUBCOMMAND
:描述tar
正在执行操作的短选项(带有前置短划线)。TAR_FD
:文件描述符,可用于将新卷名传递给tar
。
如果脚本执行失败,
tar
会退出,否则,它将开始写入写一个卷。 -
-L, --tape-length=N
:在写入了N×1024
个字节后更换卷。如果N
后跟一个大小后缀(下文“大小后缀”章节中会详细列举),则改后缀会指定要使用的乘法系数(替代 1024)。 -
-M, --multi-volume
:创建/列出/提取多卷归档文件。 -
--rmt-command=COMMAND
:当访问远程归档时使用COMMAND
来代替rmt
。 -
--rsh-command=COMMAND
:当访问远程归档时使用COMMAND
来代替rsh
。 -
--volno-file=FILE
:当此选项与--multi-volume
结合使用时,tar
会在FILE
中记录它正在处理的多卷归档文件的卷号。
设备块
-b, --blocking-factor=BLOCKS
:将记录大小设置为BLOCKS × 512
字节。-B, --read-full-records
:当列举或提取时,接收文件结束标记后的不完整输入记录。-i, --ignore-zeros
:忽略归档中的全零块。 通常,两个连续的512
字节全零块表示文件结束(EOF
),tar
会在遇到它们后停止读取。 此选项告诉tar
继续读取,这在读取使用-A
选项创建的归档文件时非常有用。--record-size=NUMBER
:设置记录大小。NUMBER
是每个记录的字节数。 它必须是512
的倍数。 它可以附加一个大小后缀,例如--record-size=10K
,表示 10 千字节。 有关有效后缀的列表,见下文 “大小后缀” 章节。
归档格式选择
-
-H, --format=FORMAT
:创建指定格式的归档文件。有效格式包括:gnu
:GNU tar
1.13.x 版本的格式oldgnu
:GNU tar
<= 1.12 的 格式pax, posix
: POSIX 1003.1-2001 (pax) 格式ustar
:POSIX 1003.1-1988 (ustar) 格式v7
:旧版的 V7 tar 格式
-
--old-archive, --portability
:等同于--format=v7
。 -
--pax-option=keyword[[:]=value][,keyword[[:]=value]]...
:当创建pax
归档时控制其关键字。该选项等同于pax
指令的-o
选项。 -
--posix
:等同于--format=posix
。 -
-V, --label=TEXT
:创建名为TEXT
的归档文件。如果是列举或提取,则使用TEXT
作为卷名的全局模式。
压缩选项
-a, --auto-compress
:根据归档文件的后缀名自动选择压缩程序。-I, --use-compress-program=COMMAND
:使用指定的命令COMMAND
过滤数据。 该命令必须接受-d
选项,用于解压缩。 参数可以包含命令行选项。-j, --bzip2
:使用bzip2(1)
过滤归档文件。-J, --xz
:使用xz(1)
过滤归档文件。--lzip
:使用lzip(1)
过滤归档文件。--lzma
:使用lzma(1)
过滤归档文件。--lzop
:使用lzop(1)
过滤归档文件。--no-auto-compress
:禁止根据归档文件的后缀名自动选择压缩程序。-z, --gzip, --gunzip, --ungzip
:使用gzip(1)
过滤归档文件。-Z, --compress, --uncompress
:使用compress(1)
过滤归档文件。--zstd
:使用zstd(1)
过滤归档文件。
本地文件选择
-
--add-file=FILE
:将文件FILE
添加到归档文件中(当文件名以短划线-
开头时很有用)。 -
--backup[=CONTROL]
:在删除前进行备份。 可选参数CONTROL
控制备份策略。 其有效值包括:none, off
:不进行备份。t, numbered
:使用编号备份。nil, existing
:如果存在编号备份,则进行编号备份,否则进行简单备份。never, simple
:始终进行简单备份。
如果未提供
CONTROL
,则该值取自VERSION_CONTROL
环境变量。 如果未设置该变量,则假定为existing
。 -
-C, --directory=DIR
:在执行任意操作前将目录更改为DIR
。 此选项对顺序敏感,即它会影响所有后续选项。 -
--exclude=PATTERN
:排除与PATTERN
匹配的文件。PATTERN
是一个glob(3)
风格的通配符模式。 -
--exclude-backups
:排除备份文件和锁文件。 -
--exclude-caches
:排除包含文件CACHEDIR.TAG
的目录内容,但保留该标签文件本身。 -
--exclude-caches-all
:排除包含文件CACHEDIR.TAG
的目录以及该标签文件本身。 -
--exclude-caches-under
:排除包含CACHEDIR.TAG
目录下的所有内容。 -
--exclude-ignore=FILE
:在处理一个目录之前,tar
会检查这个目录中是否包含名为FILE
的文件。如果存在,tar
就会读取FILE
文件中的排除模式,并根据这些模式来排除文件。仅对当前这一个目录生效。 -
--exclude-ignore-recursive=FILE
:类似于--exclude-ignore=FILE
,但该选项会对当前目录及其子目录都生效。 -
--exclude-tag=FILE
:排除包含有FILE
的目录中的内容,但FILE
本身不会被排除。 -
--exclude-tag-all=FILE
:排除包含有FILE
的目录中的所有内容,包括FILE
。 -
--exclude-tag-under=FILE
:排除包含有FILE
的目录下的所有内容。 -
--exclude-vcs
:排除版本控制系统相关的目录(.git/.svn 等)。 -
--exclude-vcs-ignores
:排除匹配版本控制系统忽略规则文件的文件。支持的文件有:.cvsignore
,.gitignore
,.bzrignore
以及.hgignore
. -
-h, --dereference
:解析符号链接,处理其指向的文件。 -
--hard-dereference
:解析硬链接,处理其指向的文件。 -
-K, --starting-file=MEMBER
:从指定的归档成员MEMBER
开始操作。 -
--newer-mtime=DATE
:处理那些数据修改时间(mtime
)晚于指定日期DATE
的文件。如果DATE
是一个以/
或.
开头的文件名,则会使用这个文件的修改时间作为参考日期。 -
--no-null
:取消之前使用过的--null
选项的效果。 -
--no-recursion
:避免在处理目录时自动处理到其子目录。 -
--no-unquote
:在处理输入文件及归档成员名时,不进行转义。 -
--no-verbatim-files-from
:将从文件中读取的每一行都视为在命令行中的输入参数一样。即去除行首和行尾的空格,且如果一个字符串以短划线-
开始,则将其视为一个命令行参数。这是默认行为。该选项是作为使用了
--verbatim-files-from
后的恢复方案。同时该选项对其出现的位置敏感,即其会影响其后面的所有--files-from
选项,直到遇到--verbatim-files-from
选项或到达文件末尾。该选项同时也隐含了
--no-null
选项。 -
--null
:指示后续的-T, --files-from=FILE
选项在读取文件名时以NUL
作为终止符,且一字不差地处理文件名(比如对于以短划线-
开头的字符串不解释为选项)。 -
-N, --newer=DATE, --after-date=DATE
:只归档那些修改时间比指定日期DATE
更新的文件。如果DATE
以/
或.
开头,则表示它是一个文件路径,则会使用这个文件的修改时间作为参考日期。 -
--one-file-system
:创建归档时保持处于本地文件系统。 -
-P, --absolute-names
:在创建归档时,保留文件名开头的斜杠(/
)。 -
--recursion
:处理目录时,递归地进入其子目录并处理其中的内容(默认行为)。 -
--suffix=STRING
:在进行备份时使用自定义的后缀STRING
。默认的后缀是~
,除非通过设置环境变量SIMPLE_BACKUP_SUFFIX
进行了覆盖。 -
-T, --files-from=FILE
:从指定的文件FILE
中读取要提取或创建的文件名列表。除非另有说明,否则
FILE
应该包含一个由ASCII
换行符 (LF
) 分隔的文件名列表(即每行一个文件名)。读取的文件名会以与命令行参数相同的方式处理:会进行引号移除和单词分割,并且任何以-
开头的字符串都会被视为tar
命令行选项。如果这种行为不符合你的需求,可以使用
--verbatim-files-from
选项来关闭它。--null
选项指示FILE
中的文件名是由ASCII
空字符 (NUL
) 分隔的,而不是LF
。这在文件名列表是由find(1) -print0
命令生成时非常有用。 -
--unquote
:取消对文件名或成员名的引用,即移除转义字符,(这是默认行为)。 -
--verbatim-files-from
:与--no-verbatim-files-from
相反,即使获取到的字符串内有特殊字符,也将其视为文件名。该选项隐含了--null
选项。 -
-X, --exclude-from=FILE
:排除与FILE
中列出的模式相匹配的文件。
文件名转化
--strip-components=NUMBER
:从文件名中移除指定数量NUMBER
的前导目录部分。例如归档中有一个文件名为a/b/c/file.txt
,使用--strip-components=2
选项提取时,该文件将被提取到c/file.txt
。--transform=EXPRESSION, --xform=EXPRESSION
:使用sed
的替换表达式EXPRESSION
来转换文件名。
文件名匹配选项
下面这些选项同时影响排除和包含模式。
--anchored
:匹配文件名的开头。--ignore-case
:忽略大小写。--no-anchored
:在任何/
之后匹配(排除模式的默认行为)。--no-ignore-case
:区分大小写(默认行为)。--no-wildcards
:精确字符串匹配,不解析通配符。--no-wildcards-match-slash
:通配符不匹配/
。--wildcards
:使用通配符(排除模式的默认行为)。--wildcards-match-slash
:通配符匹配/
(排除模式的默认行为)。
信息输出
-
--checkpoint[=N]
:每N
条记录显示一次处理信息(默认为 10)。 -
--checkpoint-action=ACTION
:在每个检查点(checkpoint
)运行一次ACTION
。 -
--clamp-mtime
:仅当文件的修改时间比--mtime
设置的更近时才更新时间。 -
--full-time
:以完整的分辨率来打印文件的时间。 -
--index-file=FILE
:将详细的提示信息输出到FILE
中。 -
-l, --check-links
:如果存在未处理的链接,则打印提示信息。 -
--no-quote-chars=STRING
:从之前通过--quote-chars
选项所设置字符列表中移除STRING
中指定的字符。 -
--quote-chars=STRING
:始终对string
中指定的字符进行转义,无论这些字符在当前的引用风格下是否需要转义。 -
--quoting-style=STYLE
:设置文件名或成员名被打印时的转义风格。有效值有:literal
,shell
,shell-always
,c
,c-maybe
,escape
,locale
,clocale
。 -
-R, --block-number
:当输出信息时显示归档中的块号。 -
--show-omitted-dirs
:当列举或提取文件时,列出不匹配搜索标准的文件夹。 -
--show-transformed-names, --show-stored-names
:显示经过--strip
和--transform
选项转换后的文件或归档名。 -
--totals[=SIGNAL]
:显示处理完归档后的总字节数。如果给定了SIGNAL
,则显示指定信号到达时的总字节数。支持的信号有:SIGHUP
,SIGQUIT
,SIGINT
,SIGUSR1
和SIGUSR2
。信号名可以忽略SIG
前缀。 -
--utc
:以UTC
格式打印文件的修改时间。 -
-v, --verbose
:详细列举出被处理的文件。 -
--warning=KEYWORD
:使能或禁用KEYWORD
指定的报警信息。如果关键字以no-
作为前缀,表示禁用该提示,反之启动。该选项可以被多次使用。以下关键字控制
tar
的通用操作:-
all
:开启所有的报警信息(默认行为)。 -
none
:禁用所有报警信息。 -
filename-with-nuls
:%s: file name read contains nul character
-
alone-zero-block
:A lone zero block at %s
以下关键字可用于
tar --create
:-
cachedir
:%s: contains a cache directory tag %s; %s
-
file-shrank
:%s: File shrank by %s bytes; padding with zeros
-
xdev
:%s: file is on a different filesystem; not dumped
-
file-ignored
:%s: Unknown file type; file ignored
%s: socket ignored
%s: door ignored
-
file-unchanged
:%s: file is unchanged; not dumped
-
ignore-archive
:%s: file is the archive; not dumped
-
file-removed
:%s: File removed before we read it
-
file-changed
:%s: file changed as we read it
-
failed-read
:抑制关于无法读取的文件或目录的警告信息。此关键字只有与--ignore-failed-read
选项一起使用时才有效。
以下关键字可用于
tar --extract
:-
existing-file
:"%s: skipping existing file"
-
timestamp
:%s: implausibly old time stamp %s
%s: time stamp %s is %s s in the future
-
contiguous-cast
:Extracting contiguous files as regular files
-
symlink-cast
:Attempting extraction of symbolic links as hard links
-
unknown-cast
:%s: Unknown file type '%c', extracted as normal file
-
ignore-newer
:Current %s is newer or same age
-
unknown-keyword
:Ignoring unknown extended header keyword '%s'
-
decompress-program
:控制在尝试运行其他解压缩程序时发生错误的详细信息的显示。一个常见的例子如下:$ tar --warning=decompress-program -x -f archive.Z
tar (child): cannot run compress: No such file or directory
tar (child): trying gzip
这意味着
tar
首先尝试使用compress
解压缩archive.Z
,当失败后,切换到gzip
。 -
record-size
:Record size = %lu blocks
以下关键字控制增量提取:
-
rename-directory
:%s: Directory has been renamed from %s
%s: Directory has been renamed
-
new-directory
:%s: Directory is new
-
xdev
:%s: directory is on a different device: not purging
-
bad-dumpdir
:Malformed dumpdir: 'X' never used
-
-
-w, --interactive, --confirmation
:对每个操作都要求确认。
兼容性选项
-o
: 创建归档文件时,等同于--old-archive
。 解压归档文件时,等同于--no-same-owner
。
大小后缀
b
:SIZE x 512。B
:SIZE x 1024。c
:SIZE。G
:SIZE x 10243。K
:SIZE x 1024。k
:SIZE x 1024。M
:SIZE x 10242。P
:SIZE x 10245。T
:SIZE x 10244。w
:SIZE x 2。
返回值
-
0
:成功终止。 -
1
:某些文件不同。如果
tar
使用--compare (--diff, -d)
命令行选项调用,这意味着归档文件中的某些文件与其磁盘上的对应文件不同。如果
tar
使用--create
、--append
或--update
选项之一,则此退出代码表示某些文件在归档过程中被更改,因此生成的归档文件不包含文件集的精确副本。 -
2
:致命错误。 这意味着发生了一些致命的、无法恢复的错误。
参考示例
使用 gzip
格式对指定目录进行打包压缩,并显示处理过程
tar czvf test.tar.gz ./code
组合使用 c
z
v
f
选项可以创建一个指定的压缩归档文件,并且显示详细的处理过程:
jay@jaylinuxlenovo:~/test$ tar czvf test.tar.gz ./code
./code/
./code/app
./code/Makefile
./code/b.h
./code/a.c
./code/a.h
./code/a.o
jay@jaylinuxlenovo:~/test$ ll *.tar.gz
-rw-rw-r-- 1 jay jay 3374 May 2 19:18 test.tar.gz
使用 bzip2
压缩格式对指定目录进行打包压缩,并显示处理过程
tar cjvf test.tar.bz2 ./code
此处的 j
选项指定了使用 bzip2
来进行压缩:
jay@jaylinuxlenovo:~/test$ tar cjvf test.tar.bz2 ./code
./code/
./code/app
./code/Makefile
./code/b.h
./code/a.c
./code/a.h
./code/a.o
对指定目录进行归档,并显示处理信息
tar cvf test.tar ./code
此处没有使用压缩选项,因此仅仅是执行了归档并且生成了一个归档文件:
jay@jaylinuxlenovo:~/test$ tar cvf test.tar ./code
./code/
./code/app
./code/Makefile
./code/b.h
./code/a.c
./code/a.h
./code/a.o
jay@jaylinuxlenovo:~/test$ ll *.tar
-rw-rw-r-- 1 jay jay 30720 May 2 19:24 test.tar
对指定目录进行归档,并删除原始文件
tar cvf test.tar ./code --remove-files
在原归档命令的基础上加入 --remove-files
可以在归档结束后删除原始文件:
jay@jaylinuxlenovo:~/test$ tar cvf test.tar ./code --remove-files
./code/
./code/app
./code/Makefile
./code/b.h
./code/a.c
./code/a.h
./code/a.o
jay@jaylinuxlenovo:~/test$ ll ./code
ls: cannot access './code': No such file or directory
查看某个压缩包内的文件信息
tar tvf test.tar.bz2
使用 t
选项可以列举出压缩包内的文件内容,且不执行实际的解压操作:
jay@jaylinuxlenovo:~/test$ tar tvf test.tar.bz2
drwxrwxr-x jay/jay 0 2025-04-12 09:35 ./code/
-rwxrwxr-x jay/jay 16016 2025-04-12 09:35 ./code/app
-rw-rw-r-- jay/jay 212 2025-04-10 22:32 ./code/Makefile
-rw-rw-r-- jay/jay 222 2025-04-12 09:53 ./code/b.h
-rw-rw-r-- jay/jay 319 2025-04-12 09:08 ./code/a.c
-rw-rw-r-- jay/jay 160 2025-04-12 09:34 ./code/a.h
-rw-rw-r-- jay/jay 1632 2025-04-12 09:35 ./code/a.o
将指定压缩包解压到当前目录
tar jxvf test.tar.bz2
此处使用 x
选项可以将文件从归档或压缩文件中提取出来:
jay@jaylinuxlenovo:~/test$ tar jxvf test.tar.bz2
./code/
./code/app
./code/Makefile
./code/b.h
./code/a.c
./code/a.h
./code/a.o
jay@jaylinuxlenovo:~/test$ ll ./code
total 44
drwxrwxr-x 2 jay jay 4096 Apr 12 09:35 ./
drwxrwxr-x 10 jay jay 4096 May 2 19:31 ../
-rw-rw-r-- 1 jay jay 319 Apr 12 09:08 a.c
-rw-rw-r-- 1 jay jay 160 Apr 12 09:34 a.h
-rw-rw-r-- 1 jay jay 1632 Apr 12 09:35 a.o
-rwxrwxr-x 1 jay jay 16016 Apr 12 09:35 app*
-rw-rw-r-- 1 jay jay 222 Apr 12 09:53 b.h
-rw-rw-r-- 1 jay jay 212 Apr 10 22:32 Makefile
注意事项
-
使用
-A, --catenate, --concatenate
来进行归档文件的追加时需注意如果给出多个归档文件,只有在使用-i
或--ignore-zeros
选项时,才能访问最终归档文件中除第一个归档文件之外的归档文件的成员。且压缩的归档文件不能被连接。 -
使用
-u, --update
来更新归档文件时需要注意较新的文件不会替换其旧的归档副本,而是追加到归档文件的末尾。 因此,生成的归档文件可能包含多个同名成员,对应于同一文件的不同版本。 -
在进行列出或提取操作时如果结合了
-g, --listed-incremental=FILE
选项,那么实际tar
并不会检查FILE
内容,但由于语法需要FILE
,通常此时会用dev/null
来代替。 -
小心处理符号链接,可以使用
-h
(或--dereference
) 参数来归档符号链接指向的实际文件,而不是链接本身。
相关文章:
Linux 常用命令 - tar【归档与压缩】
简介 tar 这个名称来源于 “tape archive”,最初设计用于将文件归档到磁带上。现在,tar 命令已经成为 Linux 系统中最常用的归档工具,它可以将多个文件和目录打包成一个单独的归档文件,并且可以选择使用不同的压缩算法进行压缩&a…...
python常用科学计算库及使用示例
一、NumPy - 数值计算基础库 安装 pip install numpy 核心功能示例 1. 数组创建与运算 import numpy as np# 创建数组 arr np.array([1, 2, 3, 4]) matrix np.array([[1, 2], [3, 4]])# 数学运算 print(arr 1) # [2 3 4 5] print(matrix …...
【中间件】brpc_基础_bthread头文件
bthread.h学习笔记 源码 1 概述 bthread.h 定义了一个用户级线程库,提供类似 POSIX 线程(pthread)的功能,但针对高并发和调度优化进行了扩展。支持线程管理、同步原语、中断机制、线程特定数据等功能,适用于需要高效…...
【AI面试准备】Git与CI/CD及单元测试实战指南
介绍Git、CI/CD 流程、单元测试框架(如 NUnit、JUnit)。如何快速掌握,以及在实际工作中如何运用 目录 一、Git:分布式版本控制系统核心概念高频命令实战建议 二、CI/CD:自动化交付流水线核心流程工具链组合关键配置示…...
个人健康中枢的多元化AI软件革新与精准健康路径探析
引言 人工智能技术的迅猛发展正在重塑医疗健康领域的服务模式和用户体验。随着多模态大模型、MCP协议、A2A协议和思考链算法等创新技术的出现,个人健康中枢正在经历一场深刻的软件革新。这些技术不仅打破了传统健康管理系统的信息孤岛,还通过多维度数据整合和深度推理能力,…...
Java文件上传
war包利用 WAR包结构详解-CSDN博客 Tomcat弱口令及war包漏洞复现(保姆级教程)-CSDN博客 Tomcat 8.x弱口令获取manager权限上传任意war包漏洞复现 - Stunmaker - 博客园...
Python项目源码63:病历管理系统1.0(tkinter+sqlite3+matplotlib)
1.病历管理系统包含以下主要功能: 核心功能:病历信息录入(患者姓名、年龄、性别、诊断结果、主治医生),自动记录就诊时间,病历信息展示(使用Treeview表格),病历信息查询…...
Unity 与 Lua 交互详解
Unity 与 Lua 的交互是热更新实现的核心技术,下面我将从底层原理到实际应用全面解析交互机制。 一、交互基础原理 1. 通信架构 Unity (C#) 原生层↑↓ 通过P/Invoke调用 Lua虚拟机层 (C/C实现)↑↓ Lua脚本解释执行 业务逻辑层 (Lua脚本) 2. 数据类型映射表 Lu…...
【Vue】Vue与UI框架(Element Plus、Ant Design Vue、Vant)
个人主页:Guiat 归属专栏:Vue 文章目录 1. Vue UI 框架概述1.1 主流Vue UI框架简介1.2 选择UI框架的考虑因素 2. Element Plus详解2.1 Element Plus基础使用2.1.1 安装与引入2.1.2 基础组件示例 2.2 Element Plus主题定制2.3 Element Plus的优缺点分析 3…...
期刊、出版社、索引数据库
image 1、研究人员向期刊或者会议投稿,交注册费和相应的审稿费等相关费用[1]; 2、会议组织者和期刊联系出版社,交出版费用; 3、出版社将论文更新到自己的数据库中,然后将数据库卖给全世界各大高校或企业; 4…...
btrace2.0使用方法
2022 年我研究安卓性能优化的时候,写过一篇:btrace1.0使用方法 - Wesley’s Blog,现在 brace 进化到 2.0 了,让我们一起来看看如何使用。 具体的接入流程可以看官方文档: bytedance/btrace: 🔥ǵ…...
【计算机视觉】三维视觉:Instant-NGP:实时神经辐射场的革命性突破
深度解析Instant-NGP:实时神经辐射场的革命性突破 技术架构与核心创新哈希编码(Hash Encoding)性能对比 环境配置与安装指南硬件要求全平台安装流程 实战全流程解析1. 数据准备2. 训练与重建3. 结果导出与应用 核心技术深度解析哈希编码实现混…...
组件通信-provide、inject
概述:实现祖孙组件直接通信 具体使用: 在祖先组件中通过provide配置向后代组件提供数据 在后代组件中通过inject配置来声明接收数据 具体编码: 【第一步】父组件中,使用provide提供数据 父组件: <template&g…...
定制开发开源AI智能名片S2B2C商城小程序驱动的无界零售基础设施变革研究——基于京东模式的技术解构与商业重构
摘要:本文以京东无界零售战略为参照,探讨定制开发开源AI智能名片S2B2C商城小程序如何通过“技术赋能生态重构”双轮驱动,重塑零售基础设施的可塑化、智能化与协同化。研究显示,该模式通过“AI名片智能中枢S2B2C分布式网络开源技术…...
基于STM32的带恒温系统智能外卖柜设计
标题:基于STM32的带恒温系统智能外卖柜设计 内容:1.摘要 随着外卖行业的迅速发展,对外卖存放设备的智能化和功能性要求日益提高。本设计的目的是开发一种基于STM32的带恒温系统智能外卖柜。方法上,以STM32微控制器为核心,结合温度传感器、加…...
ARM架构详解:定义、应用及特点
一、ARM架构的定义 ARM(Advanced RISC Machine) 是一种基于精简指令集(RISC)的处理器架构,由ARM公司(现属英伟达)设计,以低功耗、高能效为核心目标。其商业模式为IP授权,…...
Spring Boot 集成 Elasticsearch 的详细步骤
以下是 Spring Boot 集成 Elasticsearch 的详细步骤: 环境安装 安装 Java :Elasticsearch 基于 Java,需先安装 JDK 11 或更高版本。从官 方网站下载安装包,按教程安装配置,安装后通过命令行输入java -version验证。 …...
提示词版本化管理:AI开发中被忽视的关键环节
当我的提示词"消失"在团队协作中 上周五下午,我经历了一场小型"灾难"。作为一名AI产品经理,我花了整整三天精心打磨的客服机器人提示词,在周末更新后突然"失效"了。机器人不再能够准确识别用户意图࿰…...
专题二十二:DHCP协议
一、DHCP简介 HCP是Dynamic Host Configuration Protocol的缩写,即动态主机配置协议。DHCP是一个很重要的局域网的网络协议,DHCP使用UDP封装的67和68端口,DHCP客户端使用68端口,DHCP服务器使用67端口进行回应。 DHCP可以提供两种…...
轻量级在线Excel预览工具
轻量级在线Excel预览工具 简介 在日常工作中,我们经常需要快速查看Excel文件的内容,但不一定总是需要打开完整的Excel软件。为了解决这个问题,我开发了一个轻量级的在线Excel预览工具,让您可以通过浏览器快速查看Excel文件内容。…...
【OFDM过程中正交子载波特性的应用及全面解析】
OFDM过程中正交子载波特性的应用及全面解析 一、正交子载波的核心作用 正交子载波是OFDM技术的基石,其特性贯穿整个发送和接收流程: 正交性定义 子载波频率间隔为符号速率的倒数( Δ f 1 T \Delta f \frac{1}{T} ΔfT1)&…...
旧版本NotionNext图片失效最小改动解决思路
旧版本NotionNext图片失效最小改动解决思路 契机 好久没写博客了,最近在notion写博客的时候发现用notionNext同步到个人网站时,图片无法预览。猜测是notion加了防盗链措施,去notionNext官方github上寻找解决方案,需要升级到4.8.…...
4.5 使用busybox制作根文件系统
4.1. 使用busybox制作文件系统 4.1.1 busybox源码下载: 下载地址:Index of /downloads 4.1.2. busybox源码中修改Makefile ARCH arm CROSS_COMPILE /usr/local/arm/arm-2009q3/bin//arm-none-linux-gnueabi-4.1.3. make menuconfig配置busybox &…...
LeetCode[102]二叉树的层序遍历
思路: 题目描述从左到右一层一层的进行遍历,就遍历二叉树的这种题我更喜欢用递归来做, 我使用java来做的,结果集是两个List集合,那么我们是不是应该每到新的一层就给这个结果集添加一个内部的List,那么怎么…...
【C到Java的深度跃迁:从指针到对象,从过程到生态】第五模块·生态征服篇 —— 第二十章 项目实战:从C系统到Java架构的蜕变
一、跨语言重构:用Java重写Redis核心模块 1.1 Redis的C语言基因解析 Redis 6.0源码核心结构: // redis.h typedef struct redisObject { unsigned type:4; // 数据类型(String/List等) unsigned encoding:4; // …...
implement the “pixel-wise difference“
根据在处理图像数据的来源和格式的不同,在具体实现“两幅图像残差比较”的时候,分为两类方法。 类型一:PyTorch 的 Tensor 图像格式 imgs_pil_o [transforms.ToPILImage()(img_o) for img_o in imgs_o] imgs_pil_w [transforms.ToPILImag…...
GoogleTest:TEST_F
GoogleTest:简单示例及ASSERT/EXPECT说明-CSDN博客 介绍了写一个简单的测试用例 如果某些测试用例在开始测试前需要先做一些准备工作,那么如果每次都需要先准备,那么会比较的麻烦,基于这种情况可以使用GoogleTest的TEST_F方法。 简单点说,就是需要先定义一个继承于testin…...
【优选算法 | 位运算】位运算基础:深入理解二进制操作
算法相关知识点可以通过点击以下链接进行学习一起加油!双指针滑动窗口二分查找前缀和 在本篇文章中,我们将全面解析位运算的基本原理与实际应用。位运算通过直接操作数字的二进制表示,能够在许多计算中提供极大的效率提升。无论是用于加速数学…...
推荐免费的RVC模型下载网站
前沿 近年来,随着人工智能与计算机生成内容(AICG)技术的飞速发展,众多人才纷纷投身于这一领域。从ChatGPT到Stable Diffusion,再到RVC,这些广为人知的AI技术正逐步改变我们的生产方式。众所周知,…...
写了个脚本将pdf转markdown
看到有人需要将扫描pdf文档转markdown,想起之前写的一个小工具。 这个脚本是为了将pdf转成markdown,只需要申请一个智谱的api key,并填到config里,使用的模型是4v flash,免费的,所以可以放心使用。 效果如下…...
Expected SARSA算法详解:python 从零实现
🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创…...
SALOME源码分析: JobManager
本文分析SALOME中的JobManager模块。 注1:限于研究水平,分析难免不当,欢迎批评指正。注2:文章内容会不定期更新。 一、核心组件 二、关键流程 三、FAQs 网络资料 Introduction: What is the JOBMANAGER ?...
冯·诺依曼体系:现代计算机的底层逻辑与百年传承
在智能手机流畅运行复杂游戏、超级计算机模拟气候变化的今天,很少有人会想到,驱动这些神奇机器运转的核心架构,依然遵循着70多年前提出的设计理念。这就是由匈牙利裔美国科学家约翰冯诺依曼(John von Neumann)奠定的冯…...
10 种微服务设计模式
微服务的优势与挑战 在详细介绍设计模式之前,我觉得有必要先重申下微服务的概念以及它带来的挑战。 微服务是大型应用程序的一个小型、可独立部署的组件,专注于特定功能。每个微服务都运行自己的进程,通常通过 API 与其他服务进行通信&…...
深入拆解 MinerU 解析处理流程
概述 MinerU更新频率也相当频繁,在短短一个月内,更新了10个小版本。 本文结合最新版本v1.3.10,深入拆解下它进行文档解析时的内部操作细节。 MinerU仓库地址:https://github.com/opendatalab/MinerU 环境准备 在之前的文章中,已经安装了magic-pdf(MinerU的解析包名),…...
Nginx部署Vue+ElementPlus应用案例(基于腾讯云)
案例代码链接:https://download.csdn.net/download/ly1h1/90735035 1.参考链接: 基于以下两个链接的参考,创建项目 1.1.基于Vue3前端项目创建-CSDN博客 1.2.基于Vue3引入ElementPlus_vue如何引入elementplus-CSDN博客 2.修改main.js&#…...
设计模式简述(十六)门面模式
门面模式 描述基本组件 描述 门面模式是一种概念相对简单的设计模式。 其核心思想就是:封装内部子系统的复杂调用,提供一个门面对象供外部调用。 基本组件 定义子系统对象(这里做了简化,没有声明抽象) public clas…...
云原生后端:构建高效、可扩展的现代后端架构
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 随着云计算技术的迅猛发展,云原生(Cloud Native)架构已经成为现代软件开发的核心趋势。云原生后端指的是在云环境中构建和部署的后端系统,这些系统具有弹性、可扩展性、自动化运维等特性,能够更…...
基于bert的情感分析程序
文章目录 任务介绍数据概览注意事项数据处理代码准备模型构建与训练模型类构建数据集构建数据批处理模型参数查看模型训练结果推理与评估模型推理准确率评估附录任务介绍 在当今信息爆炸的时代,互联网上充斥着海量的文本数据,如社交媒体评论、产品评价、新闻报道等。这些文本…...
情境领导理论——AI与思维模型【89】
一、定义 情境领导理论思维模型是一种强调领导者应根据下属的成熟度(包括工作能力和工作意愿两个方面)来调整领导风格,以实现有效领导的动态理论。该模型认为,没有一种放之四海而皆准的领导方式,领导者的行为要与下属…...
WPF之ProgressBar控件详解
文章目录 1. ProgressBar控件简介2. ProgressBar的基本属性和用法2.1 基本属性2.2 基本用法2.3 代码中修改进度 3. 确定与不确定模式3.1 确定模式(Determinate)3.2 不确定模式(Indeterminate) 4. 在多线程环境中更新ProgressBar4.…...
计算机网络01-网站数据传输过程
局域网: 覆盖范围小,自己花钱买设备,宽带固定,自己维护,,一般长度不超过100米,,,带宽也比较固定,,,10M,,&…...
泰迪杯特等奖案例学习资料:基于边缘计算与多模态融合的温室传感器故障自诊断系统设计
(第十四届泰迪杯数据挖掘挑战赛A题特等奖案例解析) 一、案例背景与核心挑战 1.1 应用场景与行业痛点 在现代智能温室中,传感器网络是环境调控的核心依据,但其长期运行面临以下挑战: 数据异常频发: 传感器老化:温湿度传感器SHT35的精度在连续使用2年后可能漂移1℃。 环…...
力扣面试150题--分隔链表
day 39 题目描述 思路 遍历链表,每一个点与值比较,比值小就继续,比值大就放到链表尾部即可 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int…...
Shell 脚本基础
一、Shell 简介 1.Shell 的定义与作用 Shell,通常被称为命令行解释器 (Command Line Interpreter),是用户 👤 与 Linux/Unix 操作系统内核进行交互 ↔️ 的“桥梁” 🌉。它扮演着翻译官 🗣️ 的角色: 接…...
【AI面试准备】元宇宙测试:AI+低代码构建虚拟场景压力测试
介绍元宇宙测试:AI低代码构建虚拟场景压力测试(如数字孪生工厂)。如何快速掌握,以及在实际工作中如何运用。 目录 **元宇宙测试:AI低代码构建虚拟场景压力测试****一、元宇宙测试的核心挑战与需求**1. **元宇宙测试的独…...
【网络层】之IP协议
网络层之IP协议 网络层的作用IP地址不足的问题私网IP和公网IP网段划分传统的网段划分的方法CIDR网段划分路由器的角色理解运营商的角色子网划分的过程 路由表IP协议介绍报文如何分离、交付 网络层的作用 IP协议是网络层的一种典型协议,只要弄清楚了IP协议的作用&…...
AI编译器对比:TVM vs MLIR vs Triton在大模型部署中的工程选择
引言:大模型部署的编译器博弈 随着千亿参数大模型成为常态,推理延迟优化成为系统工程的核心挑战。本文基于NVIDIA A100与Google TPUv4平台,通过BERT-base(110M)和GPT-2(1.5B)的实测数据&#x…...
【dify—10】工作流实战——文生图工具
目录 一、创建工作流 应用 二、安装硅基流动 三、配置硅基流动 四、API测试 (1)进入API文档 (2)复制curl代码 (3)Postman测试API 五、 建立文生图工作流 (1)建立http请求 &…...
企业级分布式 MCP 方案
飞书原文档链接地址:https://ik3te1knhq.feishu.cn/wiki/D8kSwC9tFi61CMkRdd8cMxNTnpg 企业级分布式 MCP 方案 [!TIP] 背景:现阶段 MCP Client 和 MCP Server 是一对一的连接方式,若当前 MCP Server 挂掉了,那么 MCP Client 便不…...