<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>翻译 &#8211; 寂静花园</title>
	<atom:link href="https://www.addesp.com/archives/category/%E7%BF%BB%E8%AF%91/feed" rel="self" type="application/rss+xml" />
	<link>https://www.addesp.com</link>
	<description>寂静中交织着热情</description>
	<lastBuildDate>Sat, 04 Sep 2021 03:04:33 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>
	<item>
		<title>在 WSL2 中使用 snapd</title>
		<link>https://www.addesp.com/archives/633</link>
					<comments>https://www.addesp.com/archives/633#respond</comments>
		
		<dc:creator><![CDATA[ADD-SP]]></dc:creator>
		<pubDate>Mon, 07 Sep 2020 15:34:31 +0000</pubDate>
				<category><![CDATA[翻译]]></category>
		<category><![CDATA[WSL]]></category>
		<guid isPermaLink="false">https://www.addesp.com/?p=633</guid>

					<description><![CDATA[在 WSL2 上使用 snapd 和 snaps 像是小聪明（非贬义）一样的行为，你可能会遇到许多奇怪的事情，不建议在常规情况下使用。]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">版权声明</h2>



<p class="wp-block-paragraph">本文由 <a href="https://www.addesp.com" target="_blank" rel="noreferrer noopener">ADD-SP</a> 由英文翻译为简体中文。</p>



<ul class="wp-block-list"><li>原文作者：<a href="https://discourse.ubuntu.com/u/zyga">zyga</a></li><li>原文链接：<a href="https://discourse.ubuntu.com/t/using-snapd-in-wsl2/12113" target="_blank" rel="noreferrer noopener">https://discourse.ubuntu.com/t/using-snapd-in-wsl2/12113</a></li></ul>



<h2 class="wp-block-heading">译文</h2>



<h3 class="wp-block-heading">免责声明</h3>



<p class="wp-block-paragraph">在 WSL2 上使用 snapd 和 snaps 像是小聪明（非贬义）一样的行为，你可能会遇到许多奇怪的事情，不建议在常规情况下使用。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>这句话的意思应该是不推荐在类似生产环境这样的环境中使用。</p><cite>译者注</cite></blockquote>



<h3 class="wp-block-heading">先决条件</h3>



<p class="wp-block-paragraph">Windows10 家庭版或专业版，Windows Insider Fast ring 或 2019 秋季更新版本。你需要大约 10GB 的磁盘空间来安装 Ubuntu。</p>



<p class="wp-block-paragraph">请从 Windows 应用商店安装 Ubuntu18.04 ，并确保可以正常地使用 WSL1。网络上有许多教程可以帮助你完成这项工作，我不想重置我的系统去重复提供这些详细的说明。</p>



<p class="wp-block-paragraph">然后必须按照微软的文档启用 WSL2，<a href="https://docs.microsoft.com/zh-cn/windows/wsl/install-win10" target="_blank" rel="noreferrer noopener" title="https://docs.microsoft.com/zh-cn/windows/wsl/install-win10">点我查看文档</a>。文档中的关键内容是将 WSL1 切换为 WSL2。</p>



<p class="wp-block-paragraph">您可以通过查看 uname 的输出来检查是否正在运行 WSL2。如果您运行的是基于 4.19 内核的 microsoft standard，那就可以继续进行后续的步骤了。</p>



<h3 class="wp-block-heading">准备使用 snapd</h3>



<p class="wp-block-paragraph">WSL2 几乎可以运行 snapd 了。唯一缺少的东西就是作为 init system 的 systemd。微软正在使用一个定制的 init 为每个已安装的 WSL2 发行版设置一个有效的容器。init system 是一个最小系统，比起传统的发行版的 init system 的任务，它更多的是处理与 WSL 的集成。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>这段的最后一句话译者起初一直不能翻译通顺，后来询问群友之后发现了这篇文章：<a href="https://www.lbihua.cn/Share/DeepL.html">https://www.lbihua.cn/Share/DeepL.html</a>，文章内推荐了 DeepL 这款翻译工具，它让我可以通顺地翻译出最后一句话，感谢<a href="https://www.lbihua.cn/" target="_blank" rel="noreferrer noopener" title="https://www.lbihua.cn/">哔哗</a>的帮助。</p><cite>译者注</cite></blockquote>



<p class="wp-block-paragraph">systemd 是预装的，但不是活动的。你仍然可以手动运行 systemd，但它会拒绝启动，除非它以 pid 1 的身份被调用。有一个简单的方法，把它放在一个 &#8220;容器 &#8220;中，容器其实就是一个基于 unshare(1) 实用程序的山寨容器（poor man’s container）。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><code>poor man's container</code> 直译为“穷人容器”，但是这应该不是真实的意思，译者查询了一些资料后将其翻译为“山寨容器“，<a href="https://idioms.thefreedictionary.com/a+poor+man%27s+something" target="_blank" rel="noreferrer noopener" title="https://idioms.thefreedictionary.com/a+poor+man%27s+something">点我查看相关资料</a>。</p><cite>译者注</cite></blockquote>



<p class="wp-block-paragraph">运行下面这行神奇的命令：</p>



<pre class="wp-block-code language-shell"><code>sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target</code></pre>



<p class="wp-block-paragraph">这行命令使用 unshare(1) 来创建一个新的 PID 命名空间。PID 命名空间实际上是Linux 状态下看到进程的一部分，如果你观察你的系统，看到 pid 123，这就表示 123 存在于一个 PID 命名空间中。在另一个 PID 命名空间中，它可能是其他的东西，也可能根本不存在。创建一个 PID 命名空间可以让我们再次得到 PID 1。其余的参数告诉 unshared 再次挂载 /proc 和 fork(1)，技术上来说，这是 PID 命名空间工作所需要的。</p>



<p class="wp-block-paragraph">一旦 unshared 完成，我们要求它运行 systemd，目标是 reach basic.target。你可以在 systemd.target(5) 的手册页面上阅读更多的内容。在命令的开头你会看到 sudo daemonize，它的作用是以 root 身份运行整个命令，并将其从我们用来调用的 shell 中分离出来。</p>



<p class="wp-block-paragraph">注意，在这个阶段，如果你想管理发行版 host 上的部分服务，WSL 将会出现一些奇怪的现象。例如，如果你使用 apt-get 安装了apache2，你将无法启动它，因为服务管理脚本与 systemd 通信失败。</p>



<h3 class="wp-block-heading">使用 snpad 进入新的世界</h3>



<p class="wp-block-paragraph">现在 systemd 已经运行了，但在我们的山寨容器里如何使用它呢？技术上很简单，我们只需要在 systemd 住在我们使用的 PID 命名空间中，即运行在容器中。我们实现呢？使用 nsenter(1)。</p>



<pre class="wp-block-code language-shell"><code>exec sudo nsenter -t $(pidof systemd) -a su - $LOGNAME</code></pre>



<p class="wp-block-paragraph">这行命令会让 shell 执行sudo（并且会用这个进程替换掉当前 shell），运行 nsenter，它将我们移动到 systemd 进程的所有命名空间中。一旦进入容器， nsenter 将运行 su &#8211; $LOGNAME，使得我们在进入容器前后均使用同一个用户登录。</p>



<p class="wp-block-paragraph">接下来呢？</p>



<pre class="wp-block-code language-shell"><code>snap version</code></pre>



<p class="wp-block-paragraph">如果这条命令正常执行你就可以安装你喜欢的任何东西了。</p>



<p class="wp-block-paragraph">注意，你不能使用图形应用程序。我用 X server 和 putty 作为 X11 转发桥的实验结果相当糟糕，我不推荐这样做。</p>



<p class="wp-block-paragraph">如果你打开另一个 WSL shell，你必须重复 sudo nsenter 命令来 &#8220;切换 &#8220;到运行 systemd 的容器。</p>



<h3 class="wp-block-heading">这玩意弄坏了我的系统，救命啊！</h3>



<p class="wp-block-paragraph">Systemd 不是 ”持久性 &#8220;的。如果你重启 Windows，你将回到你开始的地方。WSL的数据将保持不变。你可以试着一次又一次地运行 systemd。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.addesp.com/archives/633/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Perl 版本的 rename 的手册翻译</title>
		<link>https://www.addesp.com/archives/240</link>
					<comments>https://www.addesp.com/archives/240#respond</comments>
		
		<dc:creator><![CDATA[ADD-SP]]></dc:creator>
		<pubDate>Tue, 25 Aug 2020 17:53:39 +0000</pubDate>
				<category><![CDATA[文档]]></category>
		<category><![CDATA[翻译]]></category>
		<guid isPermaLink="false">http://69a274df.addesp.com/?p=240</guid>

					<description><![CDATA[rename - 重命名多个文件]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">rename&nbsp;&#8211;&nbsp;重命名多个文件</p>



<pre class="wp-block-preformatted">RENAME(1p)                               用户贡献的 Perl 语言版本的文档                            RENAME(1p)

名称
       rename - 重命名多个文件

概要
       rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr [ files ]

描述
       "rename" 根据指定为第一个参数的规则重命名提供的文件名。
       perlexpr 参数是一个 Perl 表达式，
       它至少可以指定的文件名中的部分字符串。
       如果给定的文件名未被表达式修改，则不会重命名。
       如果命令行中未提供文件名，则将通过标准输入读取文件名。
，
       例如，要重命名所有匹配 "*.bak" 的文件以去除后缀，你可以这样使用

               rename 's/\e.bak$//' *.bak

               译者注：这个命令再 WSL2 Ubuntu 18.04 LTS 下无效
               可以使用这个命令 rename 's/\.bak//' *.bak。
               s/regexp/replacement/
               开头的 s 表示将 regexp 匹配到的内容 替换为 replacement。

       将所有大写字母转化为小写字母，你可以这样使用

               rename 'y/A-Z/a-z/' *

               译者注：y/source/dest/
               开头的 y 表示将 source 中匹配到的字符替换为 dest 中对应位置的字符。

选项
       -v, -verbose
               详细信息：成功重命名的文件的打印名称。

       -n, -nono
               不执行任何操作：打印要重命名的文件名，但不重命名。

       -f, -force
               覆盖：允许现有文件被覆盖。

       -h, -help
               帮助：打印概要和选项。

       -m, -man
               手册：打印手册页。

       -V, -version
               版本：显示版本号。

       -e      表达式：作用于文件名的代码。

               可以重复构建代码（例如“ perl -e”）。
               如果没有使用 -e，则第一个参数将被视作代码。

               译者注：这一段翻译起来不是很通顺，
               下面是英文原文：
               Expression: code to act on files name.
               May be repeated to build up code (like "perl -e"). 
               If no -e, the first argument is used as code.

       -E      声明：作用于文件名的代码，为-e，但以';'结尾。

环境
       没有使用环境变量。

作者
       Larry Wall

参见
       mv(1), perl(1)

诊断
       If you give an invalid Perl expression you'll get a syntax error.

错误
       原始的 "rename" 没有检查目标文件名是否存在，
       因此必须谨慎使用。希望我已经解决了这个问题（Larry Wall）。

       译者注：你不要吓我，Larry Wall。
       下面是英文原文：
       The original "rename" did not check for the existence of target filenames, 
       so had to be used with care.
       I hope I've fixed that (Robin Barker).
译者
       本手册由 ADD-SP 于 2020年8月24日 由英文翻译为简体中文。

perl v5.26.1                                          2018-02-19                                           RENAME(1p)</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.addesp.com/archives/240/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GNU TAR 手册翻译</title>
		<link>https://www.addesp.com/archives/213</link>
					<comments>https://www.addesp.com/archives/213#respond</comments>
		
		<dc:creator><![CDATA[ADD-SP]]></dc:creator>
		<pubDate>Tue, 25 Aug 2020 05:09:56 +0000</pubDate>
				<category><![CDATA[文档]]></category>
		<category><![CDATA[翻译]]></category>
		<guid isPermaLink="false">http://69a274df.addesp.com/?p=213</guid>

					<description><![CDATA[tar - 存档实用程序]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">tar&nbsp;&#8211;&nbsp;存档实用程序</p>



<pre class="wp-block-preformatted">TAR(1)                                              GNU TAR Manual                                             TAR(1)

名称
       tar - 存档实用程序

概要
   常规用法
       tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]

   UNIX 风格用法
       tar -A [OPTIONS] ARCHIVE ARCHIVE

       tar -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 ARCHIVE

       tar --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的简短描述。有关详细讨论，包括示例和用法说明，请参见
       建议，请参阅texinfo格式的GNU Tar手册。
       如果信息阅读器和tar文档已正确安装在您的系统上，命令

           info tar

       应该可以让你看到完整的手册

       您也可以在emacs（1）中使用 info mode 查看手册，或在以下网址在线找到各种格式的手册：

            http://www.gnu.org/software/tar/manual

       如果本手册与GNU Tar手册之间存在任何差异，则应将后者视为权威来源。

描述
       GNU tar 是一个存档程序，旨在将多个文件存储在一个文件（一个存档文件）中，并用于
       这类存档较晚。 存档文件可以是常规文件或设备（例如磁带驱动器，因此名称为
       该程序的代表，它代表磁带存档器），可以位于本地或远程机。

   选项风格
       GNU tar的选项可以用三种不同的样式给出。在传统风格中，
       第一个参数时所有选项字符的集合。
       参数的读取顺序和选项字符的出现顺序相同。
       在处理完所有选项之后剩余的命令行内容均被视为非可选参数：
       文件或存档成员名称。

       例如，c 选项需要创建存档，v 会现实详细操作，
       而 f 选项使用一个参数来设置要操作的存档的名称。 
       以下命令以传统方式编写，
       指示 tar 将目录 /etc 中的所有文件存储到存档文件 etc.tar 中，
       详细列出正在存档的文件：

       tar cfv a.tar /etc

       与其他命令行实用程序一样，在 UNIX 或短选项风格中，
       每个选项字母都以一个短划线作为前缀。 如果一个选项带有参数，
       则该参数作为单独的命令行字或紧随该选项之后紧随其后。 
       但是，如果该选项采用可选参数，则该参数必须跟在选项字母后且中间没有空格，
       如 -g /tmp /snar.db 所示。

       可以在单个破折号后将任意数量的不带参数的选项聚集在一起，
       例如 -vkp。 
       带有参数的选项（无论是必需的还是可选的）可以出现在此类集群的末尾，
       例如 -vkpf a.tar。

       上面以短选项样式编写的示例命令可能类似于：

       tar -cvf a.tar /etc
       或
       tar -c -v -f a.tar /etc

       在 GNU 或长选项风格中，每个选项均以两个破折号开头，
       并具有有意义的名称，由小写字母和破折号组成。 
       使用长选项时，如果不会造成歧义，则可以缩写为首字母。 
       长选项的参数以单独的命令行字形式提供，紧接在选项之后，
       或者以等号与选项分隔，中间没有空格。 
       可选参数必须始终使用后一种方法。

       这是使用这种风格编写示例命令的几种方法：

       tar --create --file a.tar --verbose /etc
       或（缩写一些选项）
       tar --cre --file=a.tar --verb /etc

       三种风格的选项可以混合使用，尽管不鼓励使用旧选项。

   操作模式
       下表中列出的选项告诉 GNU tar 要执行什么操作。
       必须给出其中一个操作模式。非可选参数的含义取决于给出的操作模式。

       -A, --catenate, --concatenate
              将存档追加到另一个存档的末尾。 
              这些参数被视为要追加的存档的名称。 
              所有存档必须与附加存档的格式相同，
              否则生成的存档可能不适用于 tar 的非 GNU 实现。 
              还要注意的是，当给出多个存档时，
              只有使用-i（--ignore-zeros）选项时，
              才能在结果存档中访问除第一个存档以外的其他存档成员。

              经过了压缩的存档无法不能追加。

       -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。

              列出或提取文件时，不检查FILE的实际内容，
              除非是出于语法要求。因此，通常使用 /dev/null 代替它。

       --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 次出现。
              仅当与以下操作模式之一一起使用时，此选项才有效：
              --delete，-diff，-extract或--list，
              并且在命令行或通过-T选项给出文件列表时。N 默认为 1。

       --restrict
              禁用某些潜在有害选项。

       --sparse-version=MAJOR[.MINOR]
              设置要使用的稀疏格式的版本（意味着使用了--sparse）。
              有效参数值为0.0、0.1 和 1.0。
              有关稀疏格式的详细讨论，
              请参见GNU Tar手册，附录D，“稀疏格式”。
              使用信息阅读器，
              可以运行以下命令来访问它：info tar'Sparse Formats'。

       -S, --sparse
              有效地处理稀疏文件。
              文件系统中的某些文件可能具有实际上从未写入过的段
              （通常这些段是由 DBM 等系统创建的数据库文件）。
              如果指定了此选项，则tar会尝试在存档之前确定文件是否稀疏，
              如果是，则通过不转储文件的空白部分来减小最终的存档大小。

   覆写控制
       当从存档中提取磁盘上已经存在的文件时，这些选项控制tar操作。

       -k, --keep-old-files
              解压缩时不要替换现有文件。

       --keep-newer-files
              不要替换比其存档副本新的现有文件。

       --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
              将提取的文件通过管道传输到命令行。
              参数是外部程序的路径名，将其作为命令行参数。
              提取出的文件的内容将传递给程序，
              然后启动这个程序。
              其他数据将通过以下环境变量提供：

              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中列出的那些文件。

       --group-map=FILE
              从 FILE 读取组翻译图。空行将被忽略。 
              注释以＃号开头，并延伸到行尾。 
              FILE 中的每个非空行都为单个组定义映射。 
              它必须由两个字段组成，以任意数量的空格分隔：

              OLDGRP NEWGRP[:NEWGID]

              OLDGRP是有效的组名或带有+前缀的GID。
              除非提供了NEWGID，否则NEWGRP也必须是有效的组名或+ GID。
              否则，不需要在系统组数据库中列出NEWGRP和NEWGID。

              结果，每一个所有者组为OLDGRP的输入文件
              将与所有者组为 NEWGRP 和 GID NEWGID 
              的输入文件一起存储在存档中。

       --mode=CHANGES
              强制将符号模式更改已添加的文件。

       --mtime=DATE-OR-FILE
              为添加的文件设置 mtime。
              DATE-OR-FILE 可以是几乎任意格式的日期/时间，
              也可以是现有文件的名称。 在后一种情况下，将使用该文件的mtime。

       -m, --touch
              Don't extract file modified time.

       --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中的每个非空行都定义了单个UID的映射。
              它必须由两个字段组成，以任意数量的空格分隔：

              OLDUSR NEWUSR[:NEWUID]

              OLDUSR 是有效的用户名或带有+前缀的UID。
              除非提供 NEWUID，否则 NEWUSR 还必须是有效的用户名或+UID。 
              否则，不需要在系统用户数据库中列出 NEWUSR 和 NEWUID。

              结果，OLDER 拥有的每个输入文件
              都将以所有者名称 NEW USER和 UID NEWUID 存储在存档中。

       -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 ACL 支持。

       --no-acls
              禁用 POSIX ACL 支持。

       --selinux
              启用 SELinux 上下文支持。

       --no-selinux
              禁用 SELinux 上下文支持。

       --xattrs
              启用扩展属性支持。

       --no-xattrs
              禁用扩展属性支持。

       --xattrs-exclude=PATTERN
              指定 xattr 键的排除模式。PATTERN 是一个 POSIX 正则表达式，
              例如--xattrs exclude='^user'，用于从用户命名空间中排除属性。

       --xattrs-include=PATTERN
              指定 xattr 键的 include 模式。PATTERN是一个POSIX正则表达式。

   设备选择和切换
       -f, --file=ARCHIVE
              使用存档文件或设备存档。如果没有给出这个选项，
              tar将首先检查环境变量 TAPE。如果设置了它，
              它的值将用作存档名称。
              否则，tar 将使用编译时指定的默认值。
              可以使用 --show defaults 选项或在 tar --help 输出的末尾检查默认值。

              带有冒号的存档名称指定远程计算机上的文件或设备。之前的那部分
              冒号作为机器名或 I P地址，后面的部分作为文件或设备路径名称，例如：

              --file=remotehost:/dev/sr0

              可以在主机名前面加上一个可选的用户名，在它们之间加上一个@号。

              默认情况下，通过rsh（1）命令访问远程主机。现在通常使用ssh（1）代替。
              您可以通过提供以下命令行选项来执行此操作：

              --rsh-command=/usr/bin/ssh

              远程机器应安装rmt（8）命令。如果其路径名与tar的默认路径名不匹配，
              可以使用 --rmt 命令选项通知tar正确的路径名。

       --force-local
              存档文件是本地文件，即使它有冒号。

       -F, --info-script=COMMAND, --new-volume-script=COMMAND
              在每个 tape 末尾运行命令（意味着使用了 -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。

              如果 info 脚本失败，tar 退出；否则，tar 开始写入下一个卷。

       -L, --tape-length=N
              写入Nx1024字节后更换 tap。如果 N后 面跟一个大小后缀
              （请参阅下面的“大小后缀”小节），
              则后缀指定要使用的乘法因子，而不是1024。

              这个选项意味着使用了 -M。

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

       --rmt-command=COMMAND
              替换 rmt 的访问远程存档时使用命令。
              请参见上面对 -f 选项的描述。

       --rsh-command=COMMAND
              访问远程存档时，请使用命令而不是 rsh。
              请参见上面对-f 选项的描述。

       --volno-file=FILE
              当此选项与 --multi-volume 结合使用时，
              tar 将跟踪它在文件中工作的多卷存档的哪个卷。

   块设置
       -b, --blocking-factor=BLOCKS
              将记录大小设置为BLOCKSx512字节。

       -B, --read-full-records
              当列出或提取时，接受文件结束标记后不完整的输入记录。

       -i, --ignore-zeros
              忽略存档中的清零块。
              通常，两个连续的512块填充有零，表示EOF，
              并且tar在遇到它们之后停止读取。
              该选项指示它进一步阅读，并且在读取使用-A选项创建的存档时非常有用。

       --record-size=NUMBER
              设置记录大小。NUMBER是每条记录的字节数。
              它必须是512的倍数。可以以存储单位如 k 或 m 为后缀，
              例如 --record-size = 10K，表示10 KB。
              请参阅小节大小后缀，以获取有效后缀的列表。

   存档格式选择
       -H, --format=FORMAT
              创建给定格式的存档。有效格式为：

              gnu    GNU tar 1.13.x格式

              tar<=1.12 的为 oldgnu-GNU 格式。

              pax, posix
                     POSIX 1003.1-2001（pax）格式。

              ustar  POSIX 1003.1-1988 (ustar) 格式。

              v7     旧的 v7tar 格式。

       --old-archive, --portability
              与 --format=v7 相同。

       --pax-option=keyword[[:]=value][,keyword[[:]=value]]...
              创建pax存档时控制pax关键字（-H pax）。
              此选项相当于pax（1）实用程序的-o选项。

       --posix
              与 --format=posix 相同。

       -V, --label=TEXT
              使用卷名创建存档。
              如果操作为列出或提取，使用文本作为卷名的全局模式。

   压缩选项
       -a, --auto-compress
              使用存档后缀来确定压缩程序。

       -I, --use-compress-program=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) 过滤存档文件。

   本地文件选择
       --add-file=FILE
              将文件添加到存档（如果文件名以破折号开头，则很有用）。

       --backup[=CONTROL]
              删除前备份。控制参数（如果提供）控制备份策略。其有效值为：

              none, off
                     永远不要备份。

              t, numbered
                     进行编号备份。

              nil, existing
                     如果存在编号备份，则进行编号备份，否则进行简单备份。

              never, simple
                     始终进行简单备份

              如果未给定控制参数，
              则该值取自 VERSION\uCONTROL 环境变量。
              如果未设置，则假定存在。

       -C, --directory=DIR
              在执行任何操作之前，切换到 DIR。此选项对顺序敏感，即它影响后面的所有选项。

       --exclude=PATTERN
              排除模式匹配到的文件，通配符遵循 glob（3）。

       --exclude-backups
              排除备份和锁定的文件。

       --exclude-caches
              排除包含文件的目录的内容 CACHEDIR.TAG，但标记文件本身除外。

       --exclude-caches-all
              排除包含文件的目录CACHEDIR.TAG以及文件本身。

       --exclude-caches-under
              排除包含的目录下的所有内容 CACHEDIR.TAG

       --exclude-ignore=FILE
              在转储目录之前，查看它是否包含 FILE。
              如果是，从中读取排除模式匹配到的文件。
              模式只影响目录本身。

       --exclude-ignore-recursive=FILE
              与--exclude ignore相同，只是文件中的模式同时影响目录及其所有子目录。

       --exclude-tag=FILE
              排除包含 FILE 的目录的内容，除了FILE本身。

       --exclude-tag-all=FILE
              排除包含 FILE 的目录。

       --exclude-tag-under=FILE
              排除包含 FILE 的目录下的所有内容。

       --exclude-vcs
              排除版本控制系统目录。

       --exclude-vcs-ignores
              排除与从 VCS-specific 的忽略文件读取的模式匹配的文件。
              支持的文件有：.cvsignore，.gitignore，.bzrignore和.hgignore。

       -h, --dereference
              遵循符号链接；存档并转储它们指向的文件。

       --hard-dereference
              遵循硬链接； 存档并转储它们引用的文件。

       -K, --starting-file=MEMBER
              从存档中的给定成员开始。

       --newer-mtime=DATE
              处理数据在 DATE 之后更改的文件。如果 DATE 以 /or 开头。
              它被视为一个文件名；该文件的mtime被用作日期。

       --no-null
              禁用先前的--null选项的效果。

       --no-recursion
              Avoid descending automatically in directories.

       --no-unquote
              不取消引用输入文件或成员名称的引用。

       --no-verbatim-files-from
              将从文件列表中读取的每一行提供给命令行。
              一、 例如，删除前导空格和尾随空格，
              如果结果字符串以破折号开头，则将其视为tar命令行选项。

              这是默认行为。提供了--no verbatim files from 选项，
              作为在 --verbatim files from 选项之后恢复它的方法。

              此选项是固定的：它将影响所有在其之后出现的--files-from选项，
              直到--verbatim-files-from选项或行尾（以先出现者为准）。

              这个选项意味着使用了 --no-null。

       --null 指示后续的 -T 选项逐字读取以空值结尾的名称（禁用对以破折号开头的名称的特殊处理）。

              详情见 --verbatim-files-from.

       -N, --newer=DATE, --after-date=DATE
              仅存储比 DATE 更新的文件。 如果DATE以/ or 开始。
              它被当作文件名：该文件的ctime用作日期。

       --one-file-system
              创建存档文件时，保留在本地文件系统中。

       -P, --absolute-names
              创建存档时，请勿在文件名中删除前导斜杠。

       --recursion
              递归到目录（默认）。

       --suffix=STRING
              备份后再删除，覆盖通常的后缀。
              默认后缀为〜，除非被环境变量 SIMPLE_BACKUP_SUFFIX 覆盖。

       -T, --files-from=FILE
              获取要从 FILE 中提取或创建的名称。

              除非另有说明，否则FILE必须包含以ASCII LF分隔的名称列表（即，每行一个名称）。
              读取的名称与命令行参数的处理方式相同。
              它们进行引号删除和单词拆分，并且任何以-开头的字符串都将作为tar命令行选项处理。

              如果不希望出现这种情况，可以使用 --verbatim-files-from 选项将其关闭。

              --null选项指示tar FILE中的名称用ASCII NUL字符而不是LF分隔。
              如果列表由find（1）-print0 谓词生成，则很有用。

       --unquote
              取消引用文件或成员名称（默认）。

       --verbatim-files-from
              从文件列表中获得的每一行都视为文件名，即使它以短划线开头也是如此。
              文件列表随--files-from（-T）选项提供。
              默认行为是处理文件列表中提供的名称，就像在命令行中键入它们一样，
              即，任何以破折号开头的名称都被视为tar选项。
              --verbatim-files-from选项禁用此行为。

              此选项会影响在命令行之后出现的所有--files-from选项。
              --no-verbatim-files-from}选项可恢复其效果。

              该选项由--null选项隐含。

              更多见 --add-file.

       -X, --exclude-from=FILE
              排除文件中列出的与模式匹配的文件。

   文件名转换
       --strip-components=NUMBER
              提取时从文件名中剥离 NUMBER 个主要部分。

       --transform=EXPRESSION, --xform=EXPRESSION
              使用 sed replace EXPRESSION 转换文件名。

   文件名匹配选项
       这些选项影响排除和包含模式。

       --anchored
              模式匹配文件名开始。

       --ignore-case
              无视大小写

       --no-anchored
              在 '/' 后面匹配模式（排除时默认）。

       --no-ignore-case
              区分大小写的匹配（默认）。

       --no-wildcards
              逐字字符串匹配。

       --no-wildcards-match-slash
              通配符不匹配 '/'。

       --wildcards
              使用通配符（默认不启用）。

       --wildcards-match-slash
              通配符匹配 /（默认不启用）。

   Informative output
       --checkpoint[=N]
              每 N 个记录显示进度消息（默认为10）。

       --checkpoint-action=ACTION
              在每个检查点上运行 ACTION。

       --clamp-mtime
              仅在文件比 --mtime 指定的文件更新时才设置时间。

       --full-time
              以完整分辨率打印文件时间。

       --index-file=FILE
              将详细输出发送到 FILE。

       -l, --check-links
              如果不是所有链接都转储，则打印一条消息。

       --no-quote-chars=STRING
              禁止从 STRING 中引用字符。

       --quote-chars=STRING
              此外，还要引用 STRING 中的字符。

       --quoting-style=STYLE
              设置文件名和成员名的引用样式。
              STYLE的有效值是文字，
              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 标识的警告消息。
              如果 KEYWORD 的前缀为 no，则消息将被禁止，否则将被启用。

              Multiple --warning messages accumulate.

              Keywords tar 的常规控制消息:

              all    启用所有警告消息。 这是默认值。

              none   禁用所有警告消息。

              filename-with-nuls
                     "%s：读取的文件名包含空字符”

              alone-zero-block
                     "%s处的一个单独的零块"

              适用于 tar 的关键字 --create：

              cachedir
                     "%s: 包含一个缓存目录标签 %s; %s"

              file-shrank
                     "%s: 文件缩小了 %s 个字节; 用零填充"

              xdev   "%s: 文件位于不同的文件系统上； 没有转储"

              file-ignored
                     "%s: 未知的文件类型; 文件被忽略"
                     "%s: 套接字被忽略"
                     "%s: door ignored"

              file-unchanged
                     "%s: 文件没有更改；没有转储"

              ignore-archive
                     "%s: 文件为存档文件；没有转储"

              file-removed
                     "%s: 文件在读取前被删除"

              file-changed
                     "%s: 文件在读取钱发生了改变"

              适用于tar的关键字 --extract：

              existing-file
                     "%s: 跳过已经存在的文件"

              timestamp
                     "%s: 旧到难以置信的时间戳 %s"
                     "%s: time stamp %s is %s s in the future"

              contiguous-cast
                     "将连续文件提取为常规文件"

              symlink-cast
                     "尝试将符号链接提取为硬链接"

              unknown-cast
                     "%s: 未知的文件类型 '%c', 提取为常规文件"

              ignore-newer
                     "当前 %s 是更新的或相同的 age"

              unknown-keyword
                     "忽略未知的扩展标头关键字 '%s'"

              decompress-program
                     控制尝试运行替代解压缩程序时发生的故障的详细描述。
                     默认情况下，此警告处于禁用状态（除非使用--verbose）。
                     使用此警告可以得到的一个常见示例是：

                     $ 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
                     "一个记录的大小 = %lu blocks"

              控制增量提取的关键字：

              rename-directory
                     "%s: 目录已经从 %s 重命名"
                     "%s: 目录已重命名"

              new-directory
                     "%s: 目录是新的"

              xdev   "%s: 目录在其他设备上：不清除"

              bad-dumpdir
                     "格式错误的 dumpdir: 'X' 从不使用"

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

   兼容性选项
       -o     创建时，与 --old-archive.  When extracting, same as --no-same-owner 相同。

   大小狗追
               后缀      单位                    等效字节
               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

返回值
       Tar 退出代码指示它是否能够成功执行请求的操作，如果不能，则发生哪种错误。

       0      正常终止。

       1      某些文件有所不同。
              如果使用--compare（--diff，-d）命令行选项调用了 tar，
              则意味着存档中的某些文件与磁盘上的文件不同。
              如果为 tar 提供--create，-append或--update选项之一，
              则此退出代码意味着某些文件在存档时已更改，因此生成的存档中不包含文件集的确切副本。

       2      致命错误。 这意味着发生了一些致命的，不可恢复的错误。

       如果 tar 调用的子进程以非零退出代码退出，
       则tar本身也会以该代码退出。
       例如，如果使用了压缩选项（例如-z）并且外部压缩程序失败，则可能会发生这种情况。 另一个示例是备份到远程设备期间 rmt 失败。

参见
       bzip2(1), compress(1), gzip(1), lzma(1), lzop(1), rmt(8), symlink(7), tar(5), xz(1).

       完整的 tar 手册：运行 info tar 或使用 emacs（1）info 模式读取它。

       各种格式的 GNU tar文档的在线副本可在以下位置找到：

           http://www.gnu.org/software/tar/manual

错误报告
       向<bug-tar@gnu.org>报告错误。

版权
       Copyright © 2013 Free Software Foundation, Inc.
       License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
       This  is  free software: you are free to change and redistribute it.  There is NO WARRANTY, to the extent per‐
       mitted by law.

译者
       本手册由 ADD-SP 于 2020-08-25 由英文翻译为简体中文。

TAR                                                 2016年3月23日                                             TAR(1)</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.addesp.com/archives/213/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>7z 通用命令手册翻译</title>
		<link>https://www.addesp.com/archives/209</link>
					<comments>https://www.addesp.com/archives/209#respond</comments>
		
		<dc:creator><![CDATA[ADD-SP]]></dc:creator>
		<pubDate>Mon, 24 Aug 2020 15:19:20 +0000</pubDate>
				<category><![CDATA[文档]]></category>
		<category><![CDATA[翻译]]></category>
		<guid isPermaLink="false">http://69a274df.addesp.com/?p=209</guid>

					<description><![CDATA[7z - 一个高压缩率的压缩程序]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">7z&nbsp;&#8211;&nbsp;一个高压缩率的压缩程序</p>



<pre class="wp-block-preformatted">7z(1)                                          通用命令手册                                          7z(1)

名称
       7z - 一个高压缩率的压缩程序

语法
       7z <指令> [<选项>... ] <存档名> [<将要被压缩的文件>... ] [<@列表文件>... ]

描述
       7-Zip是支持7z的压缩程序（它实现了LZMA压缩算法，具有很好的压缩率和压缩速度），
       LZMA2，XZ，ZIP，Zip64，CAB，RAR（如果安装了非免费的p7zip-rar软件包），
       ARJ，GZIP，BZIP2，TAR，CPIO，RPM，ISO，大多数文件系统映像和DEB格式。 
       新的7z格式的压缩比为比ZIP格式的压缩比高30-50％。

       7z使用插件来处理存档，因此它可能比7za（1）慢一些，但可以处理更多存档格式。

指令
       a      将文件添加到存档中

       b      基准测试

       d      从存档中删除文件

       e      解压存档

       h      计算文件的哈希值

       i      显示有关支持的格式的信息

       l      列出存档中的文件

       rn     重命名存档中的文件

       t      测试存档的完整性

       u      更新存档中的文件

       x      在当前目录创建一个于存档同名的目录并将全部内容解压到该目录内

选项
       --     忽略后面的选项

       -ai[r[-|0]]{@listfile|!wildcard}
              将其他存档包含进来

       -ax[r[-|0]]{@listfile|!wildcard}
              排除其它存档

       -ao{a|s|t|u}
              设置覆盖模式.
              -aoa
                     覆盖所有现有文件而无提示。
              -aos
                     不提取已经存在的文件
              -aot
                     若存在同名文件则自动重命名提取出来的文件
              -aou
                     若存在同名文件则自动重命名之前存在的文件

       -an    禁用 archive_name 字段

       -bb[0-3]
              设置输出日志的等级

       -bd    禁用进度条

       -bs{o|e|p}{0|1|2}
              为 output/error/progress 设置输出流
              （详情见 https://sevenzip.osdn.jp/chm/cmdline/switches/bs.htm）。

       -bt    显示执行时间

       -i[r[-|0]]{@listfile|!wildcard}
              Include filenames

       -m{Parameters}
              设置压缩方法 
              (详情见/usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/method.htm)

       -o{Directory}
              设置输出目录

       -p{Password}
              设置密码（注意：此标志不适用于7zr）

       -r[-|0]
              递归子目录（注意：此标志不会执行您认为的操作，请避免使用它）

       -sa{a|e|s}
              设置存档名称模式

       -scc{UTF-8|WIN|DOS}
              为控制台输入/输出设置字符集

       -scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}}
              设置列表文件的字符集

       -scrc[CRC32|CRC64|SHA1|SHA256|*]
              为 x，e，h 指令设置哈希函数

       -sdel  压缩后删除文件

       -seml[.]
              通过电子邮件发送存档

       -sfx[{name}]
              创建自解压包

       -si[{name}]
              从 stdin 读取数据
              （例如 tar cf - directory | 7z a -si directory.tar.7z）

       -slp   设置大页面模式

       -slt   显示l（List）命令的技术信息

       -snh   将硬链接存储为链接

       -snl   将符号链接存储为链接

       -sni   存储 NT 安全信息

       -sns[-]
              存储 NTFS 备用流

       -sfx[{name}]
              创建自解压包

       -so    将数据写入标准输出
       （例如 7z x -so directory.tar.7z | tar xf -）

       -spd   禁用文件名的通配符匹配

       -spe   消除使用提取命令时的根文件夹的重复

       -spf   同时存储存档内文件的全路径以至解压的时候会直接解压到压缩时的路径

       -ssc[-]
              设置区分大小写模式

       -ssw   压缩共享文件

       -stl   从最近修改的文件设置存档的时间戳

       -stm{HexMask}
              设置CPU线程亲和力掩码（十六进制数）

       -stx{Type}
              该开关将禁用与指定档案类型相关的代码，
              并且无法使用指定档案类型打开档案
              （详情见 https://sevenzip.osdn.jp/chm/cmdline/switches/stx.htm）。

       -t{Type}
              设置存档类型

       -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]
              指定如何更新档案中的文件和（或）如何创建新档案
              （详情见 https://sevenzip.osdn.jp/chm/cmdline/switches/update.htm）。

       -v{Size}[b|k|m|g]
              分卷压缩并指定每卷的大小

       -w[path]
              设置工作目录。 空路径表示一个临时目录

       -x[r[-|0]]]{@listfile|!wildcard}
              指定必须从操作中排除哪些文件名或通配符名称。

       -y     假设所有询问为“是”

诊断
       7-Zip返回以下退出代码：

              0      正常（未检测到错误或警告）

              1      警告（非致命错误）。 例如，某些文件在压缩过程中无法读取，因此它们
                     没有压缩

              2      致命错误

              7      命令行参数错误

              8      没有足够的内存进行操作

              255    用户使用Ctrl-C（或类似控件）停止了该过程

备份和限制
       在 Linux / Unix上，请勿将 7-zip 格式用于备份目的，因为 :
        - 7-zip不存储文件的所有者/组。

       在Linux / Unix上，为了备份目录，您必须使用tar：
        - 备份目录  : tar cf - directory | 7z a -si directory.tar.7z
        - 恢复备份 : 7z x -so directory.tar.7z | tar xf -

       如果要将文件和目录（不是文件的所有者）发送给
       其他Unix / MacOS / Windows用户，则可以使用7-zip格式。

         例如 : 7z a directory.7z  directory

       不要使用 "-r"，因为此标志不是像你预想的那样工作的

       不要用 directory/* 替换 ".*" 
        (例如 : "directory/*" 不包含 "directory/.profile")

例一
       7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z dir1
              使用极限压缩将 "dir1" 中所有的文件压缩入 “archive.7z” 中。

       -t7z   使用 7z 格式

       -m0=lzma
              压缩算法为 LZMA

       -mx=9  压缩等级为 9（最高等级）

       -mfb=64
              LZMA 算法的快速字节 64 个

       -md=32m
              字典大小 = 32 Mb

       -ms=on 创建固实存档文件

例二
       7z a -sfx archive.exe dir1
              将 "dir1" 中所有的文件压缩入 "archive.exe" 
              这个自解压文件中（注意：自解压文件必须以 ".exe" 结尾）

例三
       7z a -mhe=on -pmy_password archive.7z a_directory
              将 "a_directory" 中所有的文件压缩入 "archive.7z" 中并使用密码加密

参见
       7zr(1), 7z(1), p7zip(1), bzip2(1), gzip(1), zip(1),

HTML 格式的文档
       /usr/share/doc/p7zip-full/DOC/MANUAL/start.htm

作者
       由 Mohammed Adnene Trojette 为 Debian 撰写。由 Robert Luberda 更新。

译者

       本文由 ADD-SP 于 2020年8月24日 翻译。

7-Zip                                              2016年3月6日                                             7z(1)</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.addesp.com/archives/209/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
