命令与脚本:压缩、归档与备份 · 创建和解开目录归档
命令与脚本:压缩、归档与备份
创建和解开目录归档
目录打包从 tar、zip 或 7z 选择;7za、7zr 的格式支持不同,保留对应示例。已有压缩包再按格式选择解包器。
tar · 归档实用程序
通常与压缩方法结合使用,例如
gzip或bzip2。 更多信息:https://www.gnu.org/software/tar/manual/tar.html。
- 创建存档并将其写入文件:
bash
tar cf {{目标文件.tar}} {{路径/到/文件1 路径/到/文件2 ...}}- 创建一个 gzip 压缩文件并将其写入文件:
bash
tar czf {{目标文件.tar.gz}} {{路径/到/文件1 路径/到/文件2 ...}}- 使用相对路径从目录创建一个 gzip 压缩文件:
bash
tar czf {{目标文件.tar.gz}} {{[-C|--directory]}} {{路径/到/目录}} .- 详细地将(压缩的)存档文件提取到当前目录中:
bash
tar xvf {{源文件.tar.ext}}- 将(压缩的)存档文件解压缩到目标目录中:
bash
tar xf {{源文件.tar.ext}} {{[-C|--directory]}} {{目标目录}}- 创建压缩存档并将其写入文件,使用文件扩展名自动确定压缩程序:
bash
tar caf {{目标文件.tar.xz}} {{路径/到/文件1 路径/到/文件2 ...}}- 详细列出 tar 文件的内容:
bash
tar tvf {{源文件.tar}}- 从存档文件中提取与模式匹配的文件:
bash
tar xf {{源文件.tar}} --wildcards "{{*.html}}"zip · 将文件打包并压缩(存档)为 zip 文件
另请参阅:
unzip。 更多信息:https://manned.org/zip。
- 将文件/目录添加到指定存档中:
bash
zip {{[-r|--recurse-paths]}} {{路径/到/压缩文件.zip}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}- 从指定存档中删除文件/目录:
bash
zip {{[-d|--delete]}} {{路径/到/压缩文件.zip}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}- 存档文件/目录,排除指定的文件/目录:
bash
zip {{[-r|--recurse-paths]}} {{路径/到/压缩文件.zip}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}} {{[-x|--exclude]}} {{路径/到/排除的文件或目录}}- 以指定的压缩级别存档文件/目录(
0- 最低,9- 最高):
bash
zip {{[-r|--recurse-paths]}} -{{0..9}} {{路径/到/压缩文件.zip}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}- 创建一个加密的存档:
bash
zip {{[-re|--recurse-paths --encrypt]}} {{路径/到/压缩文件.zip}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}- 将文件/目录存档为多段分割的 zip 存档(例如每部分 3 GB):
bash
zip {{[-rs|--recurse-paths --split-size]}} {{3g}} {{路径/到/压缩文件.zip}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}- 列出指定 ZIP 的成员信息(zipinfo 说明见下方同名条目):
bash
zipinfo {{路径/到/压缩文件.zip}}unzip · 从 Zip 压缩包中提取文件或目录
另请参阅:
zip。 更多信息:https://manned.org/unzip。
- 将指定压缩包中的所有文件和目录提取到当前目录下:
bash
unzip {{路径/到/压缩文件.zip}}- 将压缩包中的所有文件和目录提取到指定目录下:
bash
unzip {{路径/到/压缩文件.zip}} -d {{路径/到/输出目录}}- 从压缩包中提取文件或目录到
stdout(标准输出),并附带文件名:
bash
unzip -c {{路径/到/压缩文件.zip}}- 使用支持 -O 扩展的 unzip 构建读取指定文件名编码;该选项非所有构建均支持。示例包含非 ASCII(例如中文或日文字符)命名的文件:
bash
unzip -O {{gbk}} {{路径/到/压缩文件.zip}}- 在不进行解压缩的情况下,列出指定压缩包中的内容:
bash
unzip -l {{路径/到/压缩文件}}.zip- 从指定压缩包中提取特定文件到当前目录(-j 去掉成员目录层级):
bash
unzip -j {{路径/到/压缩文件}}.zip {{路径/到/文件1 路径/到/文件2 ...}}7z · 一个高压缩率的文件归档器
更多信息:https://manned.org/7z。
- 归档一个文件或目录:
bash
7z a {{归档文件.7z}} {{文件或目录}}- 对已存在的归档文件加密(包括文件名):
bash
7z a {{加密文件.7z}} -p{{密码}} -mhe=on {{归档文件.7z}}- 提取一个已存在的 7z 文件,并保持原来的目录结构:
bash
7z x {{归档文件.7z}}- 提取一个归档文件到指定的输出目录:
bash
7z x {{归档文件.7z}} -o{{输出目录}}- 提取一个归档文件到标准输出:
bash
7z x {{归档文件.7z}} -so- 使用指定的类型来归档文件:
bash
7z a -t{{7z|bzip2|gzip|lzip|tar|zip}} {{归档文件}} {{文件或目录}}- 列出一个归档文件的内容:
bash
7z l {{归档文件.7z}}- 设置压缩级别(数字越高表示压缩越多,但速度更慢):
bash
7z a {{归档文件.7z}} -mx={{0|1|3|5|7|9}} {{文件或目录}}7za · 一个高压缩率的文件归档器
类似于
7z,支持的文档类型更少但跨平台。 更多信息:https://manned.org/7za。
- 归档一个文件或目录:
bash
7za a {{归档文件.7z}} {{文件或目录}}- 加密一个已存在的归档文件(包括文件名):
bash
7za a {{加密文件.7z}} -p{{密码}} -mhe={{on}} {{归档文件.7z}}- 提取一个已存在的 7z 文件,并保持原来的目录结构:
bash
7za x {{归档文件.7z}}- 提取一个归档文件到指定目录:
bash
7za x {{归档文件.7z}} -o{{输出目录}}- 提取一个归档文件到标准输出:
bash
7za x {{归档文件.7z}} -so- 使用指定的类型来归档文件:
bash
7za a -t{{7z|bzip2|gzip|lzip|tar|...}} {{归档文件.7z}} {{文件或目录}}- 列出一个归档文件的内容:
bash
7za l {{归档文件.7z}}- 设置压缩级别(数字越高表示压缩越多,但速度更慢):
bash
7za a {{归档文件.7z}} -mx={{0|1|3|5|7|9}} {{文件或目录}}7zr · 一个高压缩率的文件归档器
类似于
7z,只支持 7z 文件。 更多信息:https://manned.org/7zr。
- 归档一个文件或目录:
bash
7zr a {{归档文件.7z}} {{文件或目录}}- 加密一个已存在的归档文件(包括文件名):
bash
7zr a {{加密文件.7z}} -p{{密码}} -mhe={{on}} {{归档文件.7z}}- 提取一个已存在的 7z 文件,并保持原来的目录结构:
bash
7zr x {{归档文件.7z}}- 提取一个归档文件到指定的输出目录:
bash
7zr x {{归档文件.7z}} -o{{输出目录}}- 提取一个归档文件到标准输出:
bash
7zr x {{归档文件.7z}} -so- 列出一个归档文件的内容:
bash
7zr l {{归档文件.7z}}- 设置压缩级别(数字越高表示压缩越多,但速度更慢):
bash
7zr a {{归档文件.7z}} -mx={{0|1|3|5|7|9}} {{文件或目录}}unar · 从归档文件中提取内容
更多信息:https://manned.org/unar。
- 提取一个归档文件到当前目录:
bash
unar {{归档文件}}- 提取一个归档文件到指定目录:
bash
unar {{[-o|-output-directory]}} {{路径/到/目录}} {{归档文件}}- 如果要提取的文件已经存在,则总是覆盖:
bash
unar {{[-f|-force-overwrite]}} {{归档文件}}- 如果要提取的文件已经存在,则总是重命名:
bash
unar {{[-r|-force-rename]}} {{归档文件}}- 如果要提取的文件已经存在,则总是跳过:
bash
unar {{[-s|-force-skip]}} {{归档文件}}unrar · 提取 RAR 压缩档案
更多信息:https://manned.org/unrar。
- 提取文件并保留原始目录结构:
bash
unrar x {{路径/到/压缩包.rar}}- 将文件提取到指定路径,并保留原始目录结构:
bash
unrar x {{路径/到/压缩包.rar}} {{路径/到/解压目录}}- 提取文件到当前目录,但不保留档案中的目录结构:
bash
unrar e {{路径/到/压缩包.rar}}- 测试档案内每个文件的完整性:
bash
unrar t {{路径/到/压缩包.rar}}- 列出档案内的文件并不解压:
bash
unrar l {{路径/到/压缩包.rar}}unp · 解压任意归档文件
需要安装相关的解压程序,例如 RAR 文件需要安装
unrar。 更多信息:https://manned.org/unp。
- 解压一个归档文件:
bash
unp {{路径/到/归档文件.zip}}- 解压多个归档文件:
bash
unp {{路径/到/归档文件1.tar.gz}} {{路径/到/归档文件2.rar}}zpaq · 增量日志式备份工具和归档程序
- 将文件或目录添加到新的或已有的归档中:
bash
zpaq {{[a|add]}} {{路径/到/归档.zpaq}} {{路径/到/文件或目录}}- 创建或添加到加密的归档:
bash
zpaq {{[a|add]}} -k{{密码}} {{路径/到/归档.zpaq}} {{路径/到/文件或目录}}- 解压文件的最新版本:
bash
zpaq {{[x|extract]}} {{路径/到/归档.zpaq}}- 列出归档内容:
bash
zpaq {{[l|list]}} {{路径/到/归档.zpaq}}- 设置压缩级别(级别越高,压缩率越高但速度越慢):
bash
zpaq {{[a|add]}} {{路径/到/归档.zpaq}} -m{{1|2|3|4|5}} {{路径/到/文件或目录}}- 从归档中解压不晚于指定日期的指定文件:
bash
zpaq {{[x|extract]}} {{路径/到/归档.zpaq}} {{归档/中/要/解压/的/路径}} -to {{路径/到/输出}} -until {{YYYY-MM-DD}}继续阅读
- 文件与文本处理完整实践与解答
- 文件与文本处理上手与对象
- 文件与文本处理任务与配置