linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 专题栏目 > LPI >
栏目导栏
  LPI
  cisco
资料搜索
热门文章
·LPI 101认证学习1-硬件和体系结
· LPI 101认证学习7-Linux安装与
·LPI 101认证学习26-X Window 系
·LPI 101认证学习8-Linux安装与
·LPI 101认证学习15-GNU和UNIX命
·LPI 101认证学习28-X Window 系
·LPI 101认证学习10-Linux安装与
·LPI 101认证学习11-GNU和UNIX命
·LPI 101&102 2007年考试大纲
·LPI 101认证学习18-设备、Linu
·LPI 101认证学习27-X Window 系
·LPI 101认证学习14-GNU和UNIX命
·LPI 101认证学习12-GNU和UNIX命
·LPI考试流程
· LPI 101认证学习9-Linux安装与
最新文章
·LPI 101&102 2007年考试大纲
·LPI 302中文考试大纲
·LPI 301中文考试大纲
·LPIC-3认证考试内容最终确定
·LPI 101认证学习28-X Window 系
·LPI 101认证学习27-X Window 系
·LPI 101认证学习26-X Window 系
·LPI 101认证学习25-设备、Linu
·LPI 101认证学习24-设备、Linu
·LPI 101 学习指南:一.安装网络
·LPI 101 学习指南:一.安装 本地
· 安装光盘介绍(The Installati
·LPI 101认证学习23-设备、Linu
·LinuxWorld上海开展 LPI与众多
·LPI 和 Canonical 联合发布Ubu
Google
 
LPI 101认证学习13-GNU和UNIX命令之执行基本的文件管理
[ 作者:  加入时间:2006-11-23 12:11:21  来自:Linux联盟 ]

基本文件管理

本节讨论初级管理(LPIC-1)考试 101 的主题 1.103.3 的内容。这个主题的权值是 3

在本节中,学习以下主题:

  • 列出目录内容

  • 复制、移动和删除文件和目录

  • 递归地操作多个文件和目录

  • 使用通配符模式操作文件

  • 使用 find 命令根据类型、大小或时间来定位和操作文件

列出目录

在前面关于 使用命令行 的一节中,在讨论路径时说过,Linux UNIX® 系统上的所有文件都是一个大型树结构的文件系统的一部分,这个文件系统的根是 /

列出目录项

如果您在前面的一节按照我们的说明进行操作,就已经在主目录中创建了一个目录,lpi103。文件和目录名可以是绝对的(意味着它们以 / 开头),也可以是相对 当前工作目录 的(意味着它们不以 / 开头)。文件或目录的绝对路径包括一个 /,后面跟着零个或几个目录名,每个目录名后面跟着一个 /,然后是最后一个名称。如果给出了相对于当前工作目录的文件或目录名,只需将工作目录的绝对路径、/ 和这个目录的相对路径组合起来。例如,在前一节中在我的主目录 /home/ian 中创建了 lpi103 目录,所以它的完整(即绝对)路径是 /home/ian/lpi103。清单 43 演示了三种使用 ls 命令列出这个目录中文件的方式。

VqALinux联盟
清单 43. 列出目录项

 

                                      

[ian@echidna lpi103]$ pwd

/home/ian/lpi103

[ian@echidna lpi103]$ echo $PWD

/home/ian/lpi103

[ian@echidna lpi103]$ ls

sedtab  text2  text4  text6  xab  yab

text1   text3  text5  xaa    yaa

[ian@echidna lpi103]$ ls "$PWD"

sedtab  text2  text4  text6  xab  yab

text1   text3  text5  xaa    yaa

[ian@echidna lpi103]$ ls /home/ian/lpi103

sedtab  text2  text4  text6  xab  yab

text1   text3  text5  xaa    yaa

 

可以看到,可以将目录名作为参数提供给 ls 命令,它会列出这个目录的内容。

列出细节

在存储设备上,文件或目录包含在 的集合中。关于文件的信息包含在 inode 中,记录的信息包括拥有者、最近一次访问文件的时间、文件的大小、它是否是目录以及谁可以读或写它。inode 号也称为文件序列号(file serial number ,这个编号在特定的文件系统中是惟一的。可以使用 -l(或 --format=long)选项来显示 inode 中存储的一些信息。

在默认情况下,ls 命令不列出特殊文件,即名称以点(.)开头的文件。除根目录之外的每个目录都至少有两个特殊项,目录本身(.)和父目录(..)。根目录没有父目录。

清单 44 使用 -l  -a 选项以长格式列出所有文件,包括 . .. 目录项。

VqALinux联盟
清单 44. 长格式目录清单

 

                                      

[ian@echidna lpi103]$ ls -al

total 56

drwxrwxr-x    2 ian      ian          4096 Sep 30 15:01 .

drwxr-xr-x   94 ian      ian          8192 Sep 27 12:57 ..

-rw-rw-r--    1 ian      ian             8 Sep 26 15:24 sedtab

-rw-rw-r--    1 ian      ian            24 Sep 23 12:27 text1

-rw-rw-r--    1 ian      ian            25 Sep 23 13:39 text2

-rw-rw-r--    1 ian      ian            84 Sep 25 17:47 text3

-rw-rw-r--    1 ian      ian            26 Sep 25 22:28 text4

-rw-rw-r--    1 ian      ian            24 Sep 26 12:46 text5

-rw-rw-r--    1 ian      ian            98 Sep 26 16:09 text6

-rw-rw-r--    1 ian      ian            15 Sep 23 14:11 xaa

-rw-rw-r--    1 ian      ian             9 Sep 23 14:11 xab

-rw-rw-r--    1 ian      ian            18 Sep 23 14:11 yaa

-rw-rw-r--    1 ian      ian             7 Sep 23 14:11 yab

 

在清单 44 中,第一行显示列出的文件所使用的磁盘块的总数(56)。余下的字段说明文件的情况。

  • 第一个字段(在这个示例中是 drwxrwxr-x -rw-rw-r--)说明这是目录(d)还是常规文件(-)。还可能看到符号链接(l)或表示某些特殊文件(比如 /dev 文件系统中的文件)的其他值。类型后面是三组权限(比如 rwx r--),分别针对拥有者、拥有者的组中的成员以及所有用户。组中的三个值分别表示拥有者、组或所有用户是否具有读(r)、写(w)或执行(x)权限。后面会讨论其他使用方式,比如 setuid

  • 下一个字段是一个数字,说明了文件的硬链接 数量。我们说过,inode 包含关于文件的信息。文件的目录项包含到文件的 inode 的硬链接(即指针),所以列出的每个项应该至少有一个硬链接。目录项还有针对 . 项的硬链接以及针对每个子目录的 .. 项的硬链接。所以从上面的清单中可以看到,我的主目录有许多子目录。

  • 下两个字段是文件的拥有者和拥有者的主组。某些系统(比如 Red Hat 系统)为每个用户默认提供一个单独的组。在其他系统上,所有用户可能属于一个或几个组。

  • 下一个字段包含文件的长度。

  • 倒数第二个字段包含最近一次修改的时间戳。

  • 最后一个字段包含文件或目录的名称。

ls 命令的 -i 选项显示 inode 号。在本教程后面以及在针对主题 104 的教程中讨论硬链接和符号链接时,我们将使用这个命令。

多个文件

还可以为 ls 命令指定多个参数,其中每个参数是文件或目录的名称。如果参数是目录名称,那么 ls 命令列出这个目录的内容,而不是列出关于目录本身的信息。在我们的示例中,假设希望获得关于 lpi103 目录项本身的信息,就像父目录中列出的一样。命令 ls -l ../lpi103 会给出像前一个示例一样的清单。清单 45 显示如何使用 ls -ld 以及如何列出多个文件或目录。

VqALinux联盟
清单 45. 使用 ls -d

 

                                      

[ian@echidna lpi103]$ ls -ld ../lpi103 sedtab xaa

drwxrwxr-x    2 ian      ian          4096 Oct  2 18:49 ../lpi103

-rw-rw-r--    1 ian      ian             8 Sep 26 15:24 sedtab

-rw-rw-r--    1 ian      ian            15 Sep 23 14:11 xaa

 

注意,lpi103 的修改时间与前一个清单中不一样。另外,与前一个清单一样,目录中文件的时间戳不一样。您预料到这种情况了吗?正常情况下不会这样的。但是,在开发本教程时,我创建了一些额外的示例,然后删除了,所以目录时间戳反映了这一事实。在本节后面讨论 搜索文件 时会进一步讨论文件时间。

对输出进行排序

在默认情况下,ls 按照字母表次序列出文件。有许多用于对输出进行排序的选项。例如, ls -t 按照修改时间排序(从最新的到最旧的),而 ls -lS 将按大小次序产生一个长清单(从最大的到最小的)。添加 -r 选项将反转排序次序。例如,使用 ls -lrt 产生从最旧到最新的长清单。列出文件和目录的其他方式请参考手册页。

复制、移动和删除

我们已经学习了一些创建文件的方式,但是可能希望复制文件、对文件进行重命名、在文件系统层次结构中移动文件,甚至删除文件。使用下面这三个命令来完成这些任务。

cp

用于复制一个或多个文件。必须 提供至少两个文件名,一个或多个 文件名和一个目标 文件名。如果指定两个文件名,那么第一个文件被复制到第二个文件中。源和目标文件名都可以包含路径说明。如果将一个目录指定为最后一个参数,那么可以指定多个要复制进这个目录的文件。将从文件现在的位置复制所有文件,副本的文件名称与原来的文件相同。注意,与 DOS Windows 操作系统不同,并不假设目标目录是当前目录。

mv

用于移动 重命名 一个或多个文件或目录。使用的名称大体上遵循与 cp 命令相同的规则;可以对单个文件进行重命名,或者将一组文件移动到新目录中。因为名称只是一个链接到 inode 的目录项,所以 inode 号应该不变,除非 文件移动到了另一个文件系统中,在这种情况下,移动文件实际上是复制然后删除原来的文件。

rm

用于删除 一个或多个文件。稍后我们会讨论如何删除目录。

清单 46 演示如何使用 cp  mv 创建文本文件的一些备份副本。还使用 ls -i 显示一些文件的 inode

1.      先将 text1 文件复制为 text1.bkp

2.      然后使用 mkdir 命令创建一个备份目录。

3.      再建立 text1 的第二个备份副本,这一次在备份目录中,并显示这三个文件的 inode 是不同的。

4.      然后将 text1.bkp 移动到备份目录,并将它重命名以便与第二个备份更一致。其实可以在一个命令中完成这两个操作,这里使用两个命令是为了演示。

5.      再次检查 inode 并确认 inode 2129019 text1.bkp 已经不在 lpi103 目录中了,这个 inode 现在是备份目录中的 text1.bkp.1

VqALinux联盟
清单 46. 复制和移动文件

 

                                      

[ian@echidna lpi103]$ cp text1 text1.bkp

[ian@echidna lpi103]$ mkdir backup

[ian@echidna lpi103]$ cp text1 backup/text1.bkp.2

[ian@echidna lpi103]$ ls -i text1 text1.bkp backup

2128984 text1  2129019 text1.bkp

 

backup:

1564497 text1.bkp.2

[ian@echidna lpi103]$ mv text1.bkp backup

[ian@echidna lpi103]$ mv backup/text1.bkp backup/text1.bkp.1

[ian@echidna lpi103]$ ls -i text1 text1.bkp backup

ls: text1.bkp: No such file or directory

2128984 text1

 

backup:

2129019 text1.bkp.1  1564497 text1.bkp.2

 

在正常情况下,cp 命令可以覆盖现有的副本,如果现有的文件是可写的话。另一方面,如果目标文件存在,那么 mv 将不会移动或重命名这个文件。对于 cp  mv 的这种行为,有几个有用的相关选项可以进行控制。

-f --force

将使 cp 尝试删除现有的目标文件,即使它是不可写的。

-i --interactive

要求在尝试替换现有文件之前进行确认。

-b --backup

对被替换的任何文件建立备份。

关于这些选项和用于复制和移动的其他选项的完整细节,请参考手册页。

在清单 47 中,演示带备份操作的复制以及文件删除。

VqALinux联盟
清单 47. 备份复制和文件删除

 

                                      

[ian@echidna lpi103]$ cp text2 backup

[ian@echidna lpi103]$ cp --backup=t text2 backup

[ian@echidna lpi103]$ ls backup

text1.bkp.1  text1.bkp.2  text2  text2.~1~

[ian@echidna lpi103]$ rm backup/text2 backup/text2.~1~

[ian@echidna lpi103]$ ls backup

text1.bkp.1  text1.bkp.2

  Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论

分页:[1] 2 3 4
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·LPI 101认证学习12-GNU和UNIX命令之文本流和过滤器  (2006-11-22 12:37:44)
 ·LPI 101认证学习11-GNU和UNIX命令之在命令行上进行操作  (2006-11-21 14:13:42)
 ·LPI 101认证学习10-Linux安装与包管理之RPM包管理  (2006-11-20 13:28:50)
 · LPI 101认证学习9-Linux安装与包管理之Debian 包管理  (2006-11-17 15:36:46)
 ·LPI 101认证学习8-Linux安装与包管理之管理共享库  (2006-11-16 15:00:44)
 · LPI 101认证学习7-Linux安装与包管理之构建和安装程序  (2006-11-15 20:55:48)
 ·LPI 101认证学习6-Linux安装与包管理之安装引导管理程序  (2006-11-14 15:01:51)
 ·LPI 101认证学习5-Linux安装与包管理之硬盘布局  (2006-11-13 15:44:28)
 ·LPI 101认证学习4-硬件和体系结构之PC扩展卡,通信设备和USB设备  (2006-11-12 13:39:26)
 ·LPI 101认证学习3-硬件和体系结构之设置 SCSI 设备  (2006-11-11 13:44:55)