跳转到内容

Fedora 和 Red Hat 系统管理/存档和压缩

来自维基教科书,开放世界的开放书籍

压缩数据

[编辑 | 编辑源代码]

gzipgunzip

[编辑 | 编辑源代码]

正在建设中

bzip2bunzip2

[编辑 | 编辑源代码]

正在建设中

tar - *NIX 存档

[编辑 | 编辑源代码]

正在建设中

创建 tar 存档

[编辑 | 编辑源代码]

要创建未压缩的 tar 存档,需要提供 cf 选项(可以理解为 'c' 代表创建,'f' 代表文件名)。

[user@station user]$ tar cf foo.tar file1 file2 file3

第一个参数是存档的名称,本例中为 foo.tar。任何后续参数都是要存档的文件(例如,file1 file2 file3)。通常使用通配符来存档所有特定类型的文件(例如,tar cf foo.tar *.cpp 会存档当前目录中的所有 .cpp 文件)。


要存档目录中的所有文件和子目录,可以提供相同的选项,但第二个参数是 . 字符,它代表当前工作目录。

[user@station user]$ tar cf foo.tar .


要压缩存档的内容,可以使用 zJj 选项之一。每个选项对应于不同的压缩算法,它们分别是:gzipxzbzip2

例如,要创建当前目录的 gzip 压缩存档,可以使用以下命令:

[user@station user]$ tar cfz foo.tar.gz .


检查 tar 存档

[编辑 | 编辑源代码]

正在建设中

提取 tar 存档

[编辑 | 编辑源代码]

正在建设中


cpio - 灵活的归档工具

[编辑 | 编辑源代码]

通常,tar 是创建存档的首选方法,但在某些情况下,可能需要特定的存档格式,而 cpio 提供了更大的控制,可以更好地控制存档的生成方式,但代价是复杂性更高。

创建 cpio 存档

[编辑 | 编辑源代码]

要创建 cpio 存档,需要提供 -o 选项(可以理解为 'o' 代表“存档正在out出”)。cpio 期望将文件列表提供给它的标准输入。文件列表通常通过管道从 find 命令的结果提供。可以使用 -H 选项指定存档格式,有关更多信息,请参阅 手册页

[user@station user]$ find playground/
playground/
playground/AUTHORS
playground/ChangeLog
playground/COPYING
playground/foo.txt
playground/newfile
[user@station user]$ find playground/ | cpio -o >archive
1212 blocks
[user@station user]$ ls -l archive
-rw-rw-r--    1 user     user       620544 Jan  5 08:49 archive
[user@station user]$ file archive
archive: cpio archive

使用 cpio 列出存档内容

[编辑 | 编辑源代码]

要查看存档的内容,需要提供 -i 选项,以告知 cpio 在它的标准输入中期望存档数据。还要使用 -t 选项,以告知 cpio 不要提取,而只是简单地列出存档的内容。

[user@station user]$ cpio -it <archive
playground/
playground/AUTHORS
playground/ChangeLog
playground/COPYING
playground/foo.txt
playground/newfile
1212 blocks

使用 cpio 提取存档

[编辑 | 编辑源代码]

-i 选项与其他选项结合使用,以告知它如何提取。常见的选项包括:-d,以告知 cpio 按需创建目录。-m,以重置文件修改时间。-R,以更改文件所有权。

[user@station user]$ cd /tmp
[user@station tmp]$ cpio -idm <archive
1212 blocks
[user@station tmp]$ find playground/
playground/
playground/AUTHORS
playground/ChangeLog
playground/COPYING
playground/foo.txt
playground/newfile

zip - PKZIP 风格存档

[编辑 | 编辑源代码]

创建 zip 存档

[编辑 | 编辑源代码]
[user@station user]$ zip -r playground.zip playground
  adding: playground/ (stored 0%)
  adding: playground/AUTHORS (deflated 63%)
  adding: playground/COPYING (deflated 62%)
  adding: playground/foo.txt (stored 0%)
  adding: playground/newfile (deflated 39%)
  adding: playground/ChangeLog (deflated 70%)
[user@station user]$ ls -l playground.zip
-rw-r--r--  1 user     user     71607 Jan 11 14:33 playground.zip

列出 zip 存档内容

[编辑 | 编辑源代码]
[user@station user]$ unzip -l playground.zip
Archive:  playground.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
        0  01-11-05 14:33   playground/
     2110  01-11-05 14:32   playground/AUTHORS
    17992  01-11-05 14:33   playground/COPYING
       22  01-11-05 14:33   playground/foo.txt
       44  01-11-05 14:33   playground/newfile
   212169  01-11-05 14:32   playground/ChangeLog
 --------                   -------
   232337                   6 files

解压 zip 存档

[编辑 | 编辑源代码]
[user@station user]$ rm -rf playground
[user@station user]$ unzip playground.zip
Archive:  playground.zip
   creating: playground/
  inflating: playground/AUTHORS
  inflating: playground/COPYING
 extracting: playground/foo.txt
  inflating: playground/newfile
  inflating: playground/ChangeLog

dump - 文件系统级备份

[编辑 | 编辑源代码]

正在建设中

华夏公益教科书