Cpio:修订间差异
无编辑摘要 |
小无编辑摘要 |
||
(未显示14个用户的18个中间版本) | |||
第1行: | 第1行: | ||
{{Expand language|en|time=2017-02-04}} |
|||
{{noteTA |
{{noteTA |
||
|G1=IT |
|G1=IT |
||
}} |
}} |
||
{{Expert|time=2010-10-09}} |
{{Expert|time=2010-10-09|subject=计算机科学}} |
||
'''cpio''' 是[[UNIX]]作業系統的一個檔案[[備份]]程式及[[檔案格式]]。這項工具最初出現於[[PWB/UNIX]],係用於備份[[磁帶]],後來也被引進到[[UNIX System III]]及[[System V]],並流行開來。 |
'''cpio''' 是[[UNIX]]作業系統的一個檔案[[備份]]程式及[[檔案格式]]。這項工具最初出現於[[PWB/UNIX]],係用於備份[[磁帶]],後來也被引進到[[UNIX System III]]及[[System V]],並流行開來。 |
||
cpio 可以从 cpio 或 [[tar (计算机科学)|tar]] 格式的归档包中存入和读取文件, 归档包是一种包含其他文件和有关信息的文件。 有关信息包括:文件名, 属主, 时标(timestamp), 和访问权限。 归档包可以是磁盘上的 其他文件, 也可以是磁带或管道. |
cpio 可以从 cpio 或 [[tar (计算机科学)|tar]] 格式的归档包中存入和读取文件, 归档包是一种包含其他文件和有关信息的文件。 有关信息包括:文件名, 属主, 时标(timestamp), 和访问权限。 归档包可以是磁盘上的 其他文件, 也可以是磁带或管道. |
||
== |
== 示例操作和归档格式 == |
||
cpio 设计的初衷,是用于在磁带设备上,以顺序、连续的方式保存备份的文件归档。cpio 本身不会对任何归档内容进行压缩,为了便于传输,对于 cpio 的输出归档人们经常会使用 [[gzip]] 等外部程序进行压缩。 |
|||
⚫ | |||
=== 创建归档 === |
|||
⚫ | |||
<pre> |
<pre> |
||
find . -depth -print | cpio -o >/path/archive.cpio |
find . -depth -print | cpio -o > /path/archive.cpio |
||
</pre> |
</pre> |
||
=== 提取归档 === |
|||
{{Linux-stub}} |
|||
cpio 的 ''copy-input'' 操作由命令行标识 {{mono|i}} 发起。在该过程中,cpio 从标准输入读取已有的归档,然后在操作系统的文件系统中,恢复创建已经被归档的文件。 |
|||
⚫ | |||
<syntaxhighlight lang="console"> |
|||
[[de:Cpio]] |
|||
$ cpio -i -vd < archive.cpio |
|||
[[en:Cpio]] |
|||
</syntaxhighlight> |
|||
[[es:Cpio]] |
|||
[[fi:Cpio]] |
|||
命令行标识 {{mono|d}} 告诉 cpio 按需重建目录。指定命令行标识 {{mono|v}} (verbose) 时,提取文件会同时打印其文件名。 |
|||
[[fr:Cpio]] |
|||
[[it:Cpio]] |
|||
除了选项标识外,其余所有命令行参数都是类 shell 的 [[globbing]]-模式,归档中,只有文件名匹配的文件才会从中提取出来。下面这个示例从归档 ''archive.cpio'' 中提取文件 ''[[/etc/fstab]]'' : |
|||
[[ja:Cpio]] |
|||
<syntaxhighlight lang="console"> |
|||
[[pl:Cpio]] |
|||
$ cpio -i -d /etc/fstab < archive.cpio |
|||
[[ru:Cpio]] |
|||
</syntaxhighlight> |
|||
===列出归档文件列表=== |
|||
下面这行命令可以列出指定 cpio 归档中包含的全部文件: |
|||
<syntaxhighlight lang="console"> |
|||
$ cpio -t < archive.cpio |
|||
</syntaxhighlight> |
|||
列出归档文件列表在归档内可能包含绝对路径时会很实用(例如 ''/bin/ls'' 和 ''bin/ls'')。 |
|||
=== 复制文件 === |
|||
除上述操作外,cpio 还支持复制文件的操作,该操作由命令行标识 {{mono|p}}(pass) 发起。该模式可以同时进行 ''copy-in'' 和 ''copy-out'' 操作,而不会创建任何归档文件。在该模式下,cpio 从标准输入读取路径名(就像 ''copy-out'' 中的那样,但这里不会创建归档文件),然后 cpio 将这些文件和目录复制创建到命令行参数指定的不同位置。 |
|||
下面这个示例将从当前目录开始,将完整目录树复制到 ''new-path'' 路径下。指定标识 {{mono|m}} 时,该复制过程会保留文件原有的编辑时间,{{mono|d}} 标识会命令 cpio 按需创建目录,指定 {{mono|u}} 标识时,复制过程会直接覆盖已经存在的同名文件,{{mono|v}} 标识会在标准输出打印复制进度: |
|||
<syntaxhighlight lang="console"> |
|||
$ find . -depth -print | cpio -p -dumv new-path |
|||
</syntaxhighlight> |
|||
{{归档格式}} |
|||
[[Category:Unix归档和压缩相关实用工具]] |
|||
⚫ | |||
[[Category:软件包管理系统]] |
|||
[[Category:GNU计划软件]] |
|||
[[Category:自由备份软件]] |
|||
[[Category:需要计算机科学专家关注的页面]] |
2021年9月20日 (一) 17:48的最新版本
此條目可参照英語維基百科相應條目来扩充。 (2017年2月4日) |
此條目需要精通或熟悉计算机科学的编者参与及协助编辑。 (2010年10月9日) |
cpio 是UNIX作業系統的一個檔案備份程式及檔案格式。這項工具最初出現於PWB/UNIX,係用於備份磁帶,後來也被引進到UNIX System III及System V,並流行開來。
cpio 可以从 cpio 或 tar 格式的归档包中存入和读取文件, 归档包是一种包含其他文件和有关信息的文件。 有关信息包括:文件名, 属主, 时标(timestamp), 和访问权限。 归档包可以是磁盘上的 其他文件, 也可以是磁带或管道.
示例操作和归档格式
[编辑]cpio 设计的初衷,是用于在磁带设备上,以顺序、连续的方式保存备份的文件归档。cpio 本身不会对任何归档内容进行压缩,为了便于传输,对于 cpio 的输出归档人们经常会使用 gzip 等外部程序进行压缩。
创建归档
[编辑]使用以下命令可以用当前目录下的所有文件和文件夹来创建新的 cpio 归档文件:
find . -depth -print | cpio -o > /path/archive.cpio
提取归档
[编辑]cpio 的 copy-input 操作由命令行标识 i 发起。在该过程中,cpio 从标准输入读取已有的归档,然后在操作系统的文件系统中,恢复创建已经被归档的文件。
$ cpio -i -vd < archive.cpio
命令行标识 d 告诉 cpio 按需重建目录。指定命令行标识 v (verbose) 时,提取文件会同时打印其文件名。
除了选项标识外,其余所有命令行参数都是类 shell 的 globbing-模式,归档中,只有文件名匹配的文件才会从中提取出来。下面这个示例从归档 archive.cpio 中提取文件 /etc/fstab :
$ cpio -i -d /etc/fstab < archive.cpio
列出归档文件列表
[编辑]下面这行命令可以列出指定 cpio 归档中包含的全部文件:
$ cpio -t < archive.cpio
列出归档文件列表在归档内可能包含绝对路径时会很实用(例如 /bin/ls 和 bin/ls)。
复制文件
[编辑]除上述操作外,cpio 还支持复制文件的操作,该操作由命令行标识 p(pass) 发起。该模式可以同时进行 copy-in 和 copy-out 操作,而不会创建任何归档文件。在该模式下,cpio 从标准输入读取路径名(就像 copy-out 中的那样,但这里不会创建归档文件),然后 cpio 将这些文件和目录复制创建到命令行参数指定的不同位置。
下面这个示例将从当前目录开始,将完整目录树复制到 new-path 路径下。指定标识 m 时,该复制过程会保留文件原有的编辑时间,d 标识会命令 cpio 按需创建目录,指定 u 标识时,复制过程会直接覆盖已经存在的同名文件,v 标识会在标准输出打印复制进度:
$ find . -depth -print | cpio -p -dumv new-path