命令与脚本:压缩、归档与备份 · 压缩单文件、转换格式与运行压缩内容至加密归档
压缩单文件、转换格式与运行压缩内容
gzip、xz、zstd 面向压缩数据流;znew 转换旧格式,zrun 解压后运行其他命令。不要把压缩流与多文件归档混为同一操作。
gzip · 使用 gzip (LZ77) 压缩/解压文件
- 压缩文件,将其替换为
gzip存档文件:
gzip {{路径/到/文件}}- 解压缩文件,将其替换为原始未压缩版本:
gzip {{[-d|--decompress]}} {{路径/到/文件.gz}}- 压缩文件,保留原始文件:
gzip {{[-k|--keep]}} {{路径/到/文件}}- 压缩文件,指定输出文件名:
gzip {{[-c|--stdout]}} {{路径/到/文件}} > {{路径/到/压缩文件.gz}}- 解压缩
gzip存档,指定输出文件名:
gzip {{[-c|--stdout]}} {{[-d|--decompress]}} {{路径/到/文件.gz}} > {{路径/到/解压缩的文件名}}- 指定压缩级别。 1 为最快(低压缩率),9 为最慢(高压缩率),默认值是 6:
gzip -{{1..9}} {{[-c|--stdout]}} {{路径/到/文件}} > {{路径/到/压缩文件.gz}}- 显示压缩或解压后的每个文件的名称和压缩百分比:
gzip {{[-v|--verbose]}} {{[-d|--decompress]}} {{路径/到/文件.gz}}xz · 解压缩 XZ 和 LZMA 文件
更多信息:https://manned.org/xz。
- 使用 xz 压缩文件:
xz {{路径/到/文件}}- 解压 XZ 文件:
xz {{[-d|--decompress]}} {{路径/到/文件.xz}}- 使用 lzma 压缩文件:
xz {{[-F|--format]}} lzma {{路径/到/文件}}- 解压 LZMA 文件:
xz {{[-d|--decompress]}} {{[-F|--format]}} lzma {{路径/到/文件.lzma}}- 解压文件并输出到
stdout(暗示--keep):
xz {{[-d|--decompress]}} {{[-c|--stdout]}} {{路径/到/文件.xz}}- 压缩文件但不删除原文件:
xz {{[-k|--keep]}} {{路径/到/文件}}- 使用最快方式压缩文件:
xz -0 {{路径/到/文件}}- 使用最好方式压缩文件:
xz -9 {{路径/到/文件}}zstd · 使用 Zstandard 压缩来压缩 / 解压文件
更多信息:https://manned.org/zstd。
- 将一个文件压缩到一个
.zst后缀的压缩文件中:
zstd {{file}}- 解压缩一个文件:
zstd --decompress {{file.zst}}- 将文件解压缩到标准输出(
stdout):
zstd --decompress --stdout {{file.zst}}- 使用指定常规压缩等级(本例填写 1 到 19,默认 3):
zstd -{{level}} {{file}}- 使用更多内存(解压或压缩时)来得到更高的压缩比:
zstd --ultra -{{level}} {{file}}zlib-flate · 原始 zlib 压缩和解压缩程序
qpdf的一部分。 更多信息:https://manned.org/zlib-flate。
- 压缩一个文件:
zlib-flate < {{路径/到/输入_文件}} -compress > {{路径/到/压缩.zlib}}- 解压缩一个文件:
zlib-flate < {{路径/到/压缩.zlib}} -uncompress > {{路径/到/输出_文件}}- 使用指定的压缩级别压缩文件。0=最快(最差),9=最慢(最佳):
zlib-flate < {{路径/到/输入_文件}} -compress={{压缩级别}} > {{路径/到/压缩.zlib}}znew · 将文件从 .Z 格式重新压缩为 gzip 格式
更多信息:https://manned.org/znew。
- 将文件从
.Z格式重新压缩为 gzip 格式:
znew {{路径/到/文件1.Z}}- 重新压缩多个文件,并显示每个文件所实现的压缩率%:
znew -v {{路径/到/文件1.Z 路径/到/文件2.Z ...}}- 使用最慢的压缩方法重新压缩文件(以获得最佳压缩效果):
znew -9 {{路径/到/文件1.Z}}- 重新压缩文件,如果
.Z文件比 gzip 文件小,则保留.Z文件:
znew -K {{路径/到/文件1.Z}}zrun · 透明地将压缩的参数文件解压缩并传递给某个命令
更多信息:https://manned.org/zrun。
- 使用解压后的压缩参数文件运行指定命令:
zrun {{cat 路径/到/文件1.gz 路径/到/文件2.bz2 ...}}不解包查看、搜索和比较
只需检查内容时,先用 zipinfo 或分页工具;按内容检索见 zgrep/zipgrep,比较差异见 zcmp/zdiff。
zipinfo · 列出 Zip 文件内容的详细信息
- 以长格式(权限、所有权、大小和修改日期)列出 Zip 文件中的所有文件:
zipinfo {{路径/到/压缩包.zip}}- 列出 Zip 文件中的所有文件:
zipinfo -1 {{路径/到/压缩包.zip}}zless · 查看 gzip 和 xz 压缩文件
更多信息:https://manned.org/zless。
- 使用
less分页查看一个gzip压缩文件:
zless {{文件.txt.gz}}zmore · 使用 more 查看 gzip 压缩文件
更多信息:https://manned.org/zmore。
- 打开一个压缩文件:
zmore {{路径/到/文件.txt.gz}}- 显示文件的下一页:
<Space>- 在文件中搜索一个模式(按
<n>跳转到下一个匹配项):
</>{{正则表达式}}- 退出:
<q>- 显示交互式命令帮助:
<h>zstdless · 打开一个 zstd 压缩文件进行交互式阅读,允许滚动和搜索
另请参阅:
zstd,less。 更多信息:https://manned.org/zstdless。
- 打开一个
zstd压缩文件:
zstdless {{路径/到/文件.zst}}zgrep · 解压后搜索文本模式(grep -Z 输出 NUL 分隔文件名,与解压无关)
更多信息:https://manned.org/zgrep。
- 在压缩文件中 grep 一个模式(区分大小写):
zgrep {{模式}} {{路径/到/压缩/文件}}- 在压缩文件中 grep 一个模式(不区分大小写):
zgrep -i {{模式}} {{路径/到/压缩/文件}}- 输出包含匹配模式的行数:
zgrep -c {{模式}} {{路径/到/压缩/文件}}- 显示不包含该模式的行(反转搜索功能):
zgrep -v {{模式}} {{路径/到/压缩/文件}}- 在压缩文件中为多个模式执行 grep:
zgrep -e "{{模式_1}}" -e "{{模式_2}}" {{路径/到/压缩/文件}}- 使用扩展的正则表达式(支持
?、+、{}、()和|):
zgrep -E {{正则表达式}} {{路径/到/文件}}- 打印每个匹配项前后各 3 行的上下文([C]ontent)、[B]efore 或 [A]fter:
zgrep -{{C|B|A}} {{3}} {{模式}} {{路径/到/压缩/文件}}zipgrep · 在 Zip 压缩档案中的文件中使用扩展正则表达式查找模式(支持 ?、+、{}、() 和 |)
在 Zip 压缩档案中的文件中使用扩展正则表达式查找模式(支持
?、+、{}、()和|)。 更多信息:https://manned.org/zipgrep。
- 在 Zip 压缩档案中搜索一个模式:
zipgrep "{{搜索模式}}" {{路径/到/文件.zip}}- 打印匹配的文件名和行号:
zipgrep {{[-H|--with-filename]}} {{[-n|--line-number]}} "{{搜索模式}}" {{路径/到/文件.zip}}- 搜索与模式不匹配的行:
zipgrep {{[-v|--invert-match]}} "{{搜索模式}}" {{路径/到/文件.zip}}- 指定在 Zip 压缩档案中要搜索的文件:
zipgrep "{{搜索模式}}" {{路径/到/文件.zip}} {{要搜索的文件1}} {{要搜索的文件2}}- 排除在 Zip 压缩档案中要搜索的文件:
zipgrep "{{搜索模式}}" {{路径/到/文件.zip}} -x {{要排除的文件1}} {{要排除的文件2}}zcmp · 比较压缩文件
更多信息:https://manned.org/zcmp。
- 对两个通过
gzip压缩的文件运行cmp命令:
zcmp {{路径/到/文件1.gz}} {{路径/到/文件2.gz}}- 将一个文件与其 gzipped 版本进行比较(假设
.gz已存在):
zcmp {{路径/到/文件}}zdiff · 对 gzip 压缩文件调用 diff
更多信息:https://manned.org/zdiff。
- 比较两个文件,必要时解压它们:
zdiff {{路径/到/文件1.gz}} {{路径/到/文件2.gz}}- 将文件与同名的
gzip压缩文件进行比较:
zdiff {{路径/到/文件}}zipnote · 查看、添加或编辑 Zip 压缩包的注释
文件在 Zip 压缩包中也可以被重命名。 更多信息:https://manned.org/zipnote。
- 查看 Zip 压缩包中的注释:
zipnote {{路径/到/文件.zip}}- 将 Zip 压缩包中的注释提取到一个文件:
zipnote {{路径/到/文件.zip}} > {{路径/到/文件.txt}}- 从一个文件中添加/更新 Zip 压缩包中的注释:
zipnote < {{路径/到/文件.txt}} -w {{路径/到/文件.zip}}加密归档
gpg-zip 使用 GPG 保护归档,zipcloak 处理 ZIP 加密;具体格式和密钥方式按接收端选择。
gpg-zip · 使用GPG加密存档中的文件和目录
更多信息:https://www.gnupg.org/documentation/manuals/gnupg/gpg_002dzip.html。
- 使用密码将一个目录加密为
archive.gpg:
gpg-zip {{[-c|--symmetric]}} {{[-o|--output]}} {{archive.gpg}} {{path/to/directory}}- 解密并提取
archive.gpg中的内容(使用前确认成员路径和目标目录):
gpg-zip {{[-d|--decrypt]}} {{path/to/archive.gpg}}- 列出加密的
archive.gpg的内容:
gpg-zip --list-archive {{path/to/archive.gpg}}zipcloak · 加密 Zip 压缩档案内的内容
- 加密一个 Zip 压缩档案的内容:
zipcloak {{路径/到/压缩档案.zip}}- [d]解密一个 Zip 压缩档案的内容:
zipcloak {{[-d|--decrypt]}} {{路径/到/压缩档案.zip}}- [O]将加密内容输出到一个新的 Zip 压缩档案中:
zipcloak {{路径/到/压缩档案.zip}} {{[-O|--output-file]}} {{路径/到/加密.zip}}继续阅读
- 文件与文本处理完整实践与解答
- 文件与文本处理上手与对象
- 文件与文本处理任务与配置