UNIX 新手指南,第 1 部分: 文件维护工具( 五 )


$ ls -l
您应该看到下面的结果:-rw------- 1 tuser admin 0 Aug 13 15:35 example.txt
在这个示例中,您指定了其他用户和组(o 和 g),并使用减号表示希望对这些类别关闭某些权限 。然后,使用 (r) 表示需要关闭读取访问权限 。现在,文件的所有者 tuser 仍然可以对该文件进行读取和写入操作,但系统中所有其他的用户(除了超级用户之外)都不能访问该文件 。注意:超级用户 (root) 可以重写所有的文件权限 。
处理多个文件
现在,您已经了解了如何遍历目录和处理单个文件 。本教程中的下一个内容是,了解如何处理一组文件 。几乎所有的 Unix 命令除了可以处理单个文件外,还可以处理文件列表 。通过显式地输入需要使用的每个文件的名称,或使用通配符表示需要使用的、具有共同名称特征的所有文件,您可以输入文件的列表 。
通配符
对于处理多个文件,最常用的方法就是使用 * 通配符 。通过使用 * 来表示任何字符或任何数量的字符,您可以选择文件列表 。为了创建更多的文件以进行演示,可以输入下列命令:$ cp example.txt example2.txt
$ cp example.txt script.sh
现在,输入下面的命令:$ ls *.txt
您应该仅看到扩展名为 .txt 的文件 。接下来,输入:$ ls exa*
这次,您应该看到两个示例文件,但不应该看到 script.sh 。
任何能够处理多个文件的命令行应用程序都可以使用通配符 。
递归
许多用来处理文件的命令行应用程序都具有一个 -R 选项 。当使用了 -R 时,该应用程序将递归地进入一个目录及其所有的子目录,并且针对其中的每个文件执行所需的命令 。例如,您可以返回您的 home 目录,然后复制整个 TUTORIAL 目录:$ cd ~
$ cp -R TUTORIAL /tmp/.
$ ls /tmp/TUTORIAL/
现在,可以删除该目录,以便对系统进行清理:$ rm -R /tmp/TUTORIAL/
$ ls /tmp/
这就删除了整个目录,包括其中包含的所有文件 。请注意:您可能会比原计划删除更多的数据,尤其是当通配符和 -R 一同使用时 。
存档和压缩
许多日常的文件操作都可以使用单个文件、目录和通配符来完成,但对于那些对备份、将文件集传输给其他用户、或仅为了节省空间感兴趣的用户来说,了解如何使用存档和压缩是非常重要的 。Unix 操作系统中有许多用于存档和压缩数据的实用程序 。
tar
要将多个文件聚集成单个文件(存档),最常用的方法是使用 tar 命令 。tar 是磁盘存档程序 (Tape Archiver) 的缩写,这是因为它开始时使用备份磁带进行存档,但现在通常用来执行磁盘到磁盘的操作 。尝试对 TUTORIAL 目录中的内容进行存档:$ cd ~
$ tar cvf /tmp/tutorial.tar TUTORIAL
$ ls /tmp/
现在,您应该可以在 /tmp/ 中看到一个名为 tutorial.tar 的文件 。该文件包含了目录 TUTORIAL 以及这个目录中所包含的文件 。这个示例中使用了命令行选项 cvf:
c 表示创建 (create),它用来告诉 tar 创建一个新的存档 。
v 表示详细 (verbose),它用来告诉 tar 显示加入到存档的每个文件的清单 。
f 表示文件 (file),它用来告诉 tar 将存档写入到文件而不是设备 。
然后,进入 /tmp 并提取该存档的内容:$ cd /tmp/
$ ls
$ tar cvf tutorial
$ ls
请注意,第 1 个 ls 命令显示了 tutorial.tar,但它并没有显示 TUTORIAL 目录 。第 2 个 ls 命令(在 tar 命令之后),它显示出在 /tmp/ 中有一个 TUTORIAL 目录 。删除 /tmp/TUTORIAL 目录,以便对系统进行清理:$ rm -R /tmp/TUTORIAL

推荐阅读