[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ A ] [ B ] [ C ] [ D ] [ 下一页 ]


Debian 教程 (过时文档)
第 12 章 - 文件工具


12.1 备份工具

tar, cpio, dump; 以及大规模复制,cp -a 等。

(也许可以写一些关于如何只备份 /home 和 /etc 的内容,如果你只有软盘驱动器,因为很多家庭用户没有磁带驱动器)

如何使用 tar 复制大量文件,或备份你的文件。Tarball 文件。我认为这应该是一个针对单用户系统的简短章节,更全面的系统管理员讨论应放在另一本手册中。

备份命令 (由 Oliver Elphick 贡献,本节需要清理和详细说明)

dump - 一次转储一个文件系统;它的命令选项假定你正在使用半英寸磁带(每卷最多 45Mb),因此当使用 DAT(2Gb 或更多)时有点烦人。可能是定期备份的最佳选择。不能用于 NFS 挂载的文件系统。

cpio - `find [目录] -print | cpio -ovH newc -B >/dev/st0'

tar - `tar cvf /dev/st0 [目录]'

afio - 类似于 cpio;支持在归档前预压缩文件。

tob - afio 的前端


12.2 使用 gzip 进行文件压缩

通常,将文件变得更小会很好:例如,为了更快地下载它,或者使其占用更少的磁盘空间。执行此操作的程序称为 gzip (GNU Zip)。

  1. cd; cp /etc/profile ./mysamplefile

    切换到你的主目录,然后将任意选择的文件 (/etc/profile) 复制到当前目录,并在此过程中将其重命名为 mysamplefile。这给了我们一个可以使用 gzip 处理的文件。

  1. ls -l

    列出当前目录的内容。注意 mysamplefile 的大小。

  1. gzip mysamplefile

    压缩 mysamplefile

  1. ls -l

    观察结果:mysamplefile 现在名为 mysamplefile.gz。它也小了很多。

  1. gunzip mysamplefile.gz; ls -l

    解压缩。观察到 mysamplefile 已恢复到其原始状态。请注意,要解压缩,请使用 gunzip,而不是 gzip

  1. rm mysamplefile

    删除该文件,因为它只是用来练习的。


12.3 将文件分割成更小的片段

有时,文件太大而无法放入磁盘,或者你不想一次性通过网络发送一个巨大的文件。你可以使用 split 实用程序分割文件,并使用 cat (concatenate) 实用程序重新组装它。

  1. cd; cp /bin/bash myfile; ls -l myfile

    将 bash 可执行文件复制到你主目录中名为 myfile 的文件中。观察到 myfile 占用略超过 400,000 字节,或大约 400 千字节。

  1. split -b100k myfile myprefix

    将文件分割成 100 千字节的部分,并将这些部分命名为 myprefixaamyprefixab 等。输入 ls -l 以查看结果。

    你可以在 -b 之后指定任何数字:选择一个有意义的数字。如果省略 k,它将被理解为字节而不是千字节。如果使用 m 而不是 k,它将被理解为兆字节。

  1. cat myprefix* > mynewfile

    连接所有文件并将它们写入 mynewfile。(*> 是你将在另一章中学习的技巧。)

  1. rm myfile mynewfile myprefix*

    删除所有内容。


12.4 查找文件

有两种不同的查找文件的方法:findlocatefind 搜索当前状态下的实际文件。locate 搜索系统每天早上 6:42 生成的索引(这是一个 cron 任务,在本手册的其他地方解释)。locate 不会找到索引生成后创建的任何文件。但是,由于 locate 搜索索引,因此速度更快 - 就像使用书的索引而不是浏览整本书一样。

为了比较这两种查找文件的方式,假设你不记得 X 配置文件 XF86Config 位于何处。

  1. locate XF86Config

    这应该很快。你将获得一个包含 XF86Config 的文件名列表,如下所示

         /etc/X11/XF86Config 
         /usr/X11R6/lib/X11/XF86Config
         /usr/X11R6/lib/X11/XF86Config.eg
         /usr/X11R6/man/man5/XF86Config.5x.gz
    
  1. find / -name XF86Config

    你会听到很多磁盘活动,这将花费更长的时间。结果看起来像这样

         /etc/X11/XF86Config 
         /usr/X11R6/lib/X11/XF86Config 
         find: /var/spool/cron/atjobs: Permission denied 
         find: /var/spool/cron/atspool: Permission denied
         find: /var/lib/xdm/authdir: Permission denied
    

    请注意,find 只找到了名称完全为 XF86Config 的文件,而不是任何包含该字符串的文件。此外,find 实际上尝试查找系统上的每个目录 - 包括一些你没有读取权限的目录。因此出现了“权限被拒绝”消息。

    语法也不同。你必须指定要搜索的目录 --- / --- 而 locate 自动选择了根目录。而且你必须使用 -name 选项指定按名称搜索。你也可以使用许多其他条件搜索文件,例如修改日期或所有者。要让 find 搜索名称与 XF86Config 匹配的文件,你必须使用正则表达式:find / -name '*XF86Config*'。像大多数命令行工具一样,find 接受正则表达式作为参数。

总的来说,find 是一个更强大的实用程序,而 locate 对于日常快速搜索来说更快。要解释所有可能的搜索范围将花费很长时间;有关更多详细信息,请键入 info find,这将显示关于 findlocate 的非常详尽的信息页面。


12.5 确定文件内容

Debian 自带一个实用程序,可以为你猜测文件的内容。它并不总是正确的。但是,它相当准确,你可以使用它来探索你的系统。

  1. file /bin/cp

    你应该看到类似这样的内容

         /bin/cp: ELF 32-bit LSB executable, Intel 386, version 1, stripped
    

    跳过技术部分,这是一个用于 Intel 机器的可执行文件。

  1. file /etc/init.d/boot

    给出这样的响应

         /etc/init.d/boot: Bourne shell script text
    

    意思是这是一个文本文件,包含一个 Bourne shell 脚本。


[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ A ] [ B ] [ C ] [ D ] [ 下一页 ]


Debian 教程 (过时文档)

2009 年 12 月 29 日

Havoc Pennington hp@debian.org