第04章 遍历文件系统96-117_第1页
第04章 遍历文件系统96-117_第2页
第04章 遍历文件系统96-117_第3页
第04章 遍历文件系统96-117_第4页
第04章 遍历文件系统96-117_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章遍历文件系统117第4章遍历文件系统目标完成此章学习后,你将掌握下列内容:n 描述UNIX文件系统的结构。n 描述文件和目录的区别。n 成功地遍历文件系统。n 建立和删除目录。n 描述绝对和相对路径之间的区别。n 使用相对路径名最大限度地减少打字量。4.1什么是文件系统注释UNIX系统用文件系统来管理和组织文件和目录。文件通常是数据的容器,而目录则是文件或(和)其他目录的容器。在一个目录下的目录被称为子目录。UNIX系统的文件系统与文件柜相似。整个文件系统相当于一个文件柜,因为它包括了所有的抽屉、文件夹和文件。抽屉相当于一个子目录,里面有报告或者文件夹。由于文件夹中包含报告,所以也相当于

2、一个子目录。而报告则相当于一个文件,它装载的是实际数据。4.2树状结构注释目录的组织形式可以用一棵层次性的树结构来说明。在这棵树中,每一项目是一个目录或者一个文件。目录用椭圆表示,文件用长方形表示,这样在图表中就能够明显地辨别目录和文件。本节幻灯片以树状图的形式展示了上一节幻灯片中的文件柜。4.3文件系统的层次结构注释正如文件柜一样,UNIX系统的文件系统层次性结构提供了一种简单、有效的文件组织机制。由于UNIX系统的各个不同版本通常都包含数以百计的文件和程序,人们已经约定了一种层次性的文件管理方式,这样每个UNIX系统都能支持这种类似的目录结构。这个层次结构的顶部被称为根(root)目录(因

3、为它处于这棵倒挂树的顶部),用左斜杠“/”表示。UNIX系统提供了有关的命令,你可以按照组织文件的需要创建新的目录、将一个目录的文件拷贝或移动到另一个目录,就像往文件柜的其中一个抽屉增加一个新的文件夹,以及将一个文件夹里的报告移到另一个文件夹一样方便。HP-UX 10.0的文件系统被重新安排为两个主要部分:静态文件和动态文件。静态文件这些文件是共享的。这部分有三个很重要的目录:/opt、/usr和/sbin。n /opt包含应用程序和产品。HP-UX系统的开发者和管理员用这个目录安装新的产品或本地使用的应用程序。n /usr/bin包含参考手册section 1的命令,这些命令对于基本的UNI

4、X系统操作和文件管理是不可缺少的。该目录下的命令通常可以被用户使用(“bin”是“binary”的简称)。n /usr/sbin包含参考手册section 1m的命令,这些命令是系统管理命令。必须是超级用户才可以使用其中的命令。这些命令的帮助在参考手册的section 1m。n /usr/lib这个目录包含应用程序所用的文档和共享库。n /usr/share包含与供应商无关的文件(其中最重要的是手册)。n /usr/share/man包含所有在线手册的文件。n /usr/local/bin通常包含本地开发的程序和工具。n /usr/contrib/bin包含公共程序和工具,可以从公告板(bul

5、letin board)或者用户新闻组(user group)取得这些公共程序和工具。n /sbin包含在启动和关闭系统时起关键作用的命令。动态文件这些文件是个人所有的。这部分有七个很重要的目录:/home、/etc、/stand、/tmp、/dev、/mnt和/var。n /homeUNIX系统中的每个用户应该有自己的帐号。除了提供登录名和密码,系统管理员还向你提供一个个人使用的目录。/Home目录下,通常每个用户帐号都有一个子目录。你对你的目录下的内容有完全的控制权。由你负责在这个子目录 下通过创建子目录和文件来组织和管理你的作业。当你登录到系统中时,你一开始所在的目录与你的帐号相关,因此

6、这个目录通常被称为主目录或者登录目录。在这个目录下,你能将你的位置定位到在文件系统的层次结构中你有访问权限的目录。至少你能访问在主目录下的任何东西,至多你能进入UNIX文件系统的所有目录(系统的默认配置)。系统管理员负责限制用户对特定目录的访问。n /etc存放着许多系统配置文件。在参考手册的section 4中有帮助内容。n /stand/vmunix该文件存放着系统内核程序。打开系统时,这个程序会被载入内存,控制所有的系统操作。n /tmp这个目录通常用来做操作系统的临时文件存放场,因为系统常要产生中间文件(intermediate files)或者工作文件(working files)。

7、注意UNIX系统有一个约定:系统可以在任何时候删除任何tmp目录下的文件。n /dev这个目录包含着代表硬件设备的文件,这些硬件设备可能已经联接到你的系统中。由于这些文件只是充当这些设备的关口,数据不会直接存储在这些设备文件上。这些文件常常被称为特殊文件(special files)或者设备文件(device files)。n /mnt这个目录用来加载其他设备(如光驱)。n /var/mail这个目录包含一个邮箱,为每个用户接收邮件用。n /var/news包含代表当前所有新闻信息的所有文件。这些新闻的内容可以通过键入news a来查看。n /var/tmp这个目录通常用来作用户文件的临时存放

8、地。4.4路径名注释绝对路径相对/home/user3的路径/home/user3/f1f1/home/user3/memomemo/home/user3/memo/f1memo/f1相对/home/user1的路径/home/user1/f1f1许多UNIX系统命令的作用对象是文件和(或)目录。为了将请求的文件或目录的位置告诉给命令,需将一个路径名作为命令的参数提供给命令。路径名是系统为到达目的文件或目录在文件系统的层次结构中所经过的路线。$ command options pathname pathname.为了更好地理解路径这个概念,我们打个比喻,通过将一支铅笔从UNIX系统树的一个地方

9、移到另一个地方来跟踪其分枝。路径名就是铅笔尖在跟踪分枝过程中所点过的项目的集合,这个路径名以目的文件或目录结束。指定文件或目录的路径名时,左斜杠“/”用来分隔文件和(或)目录名。directory/directory/directorydirectory/file你登录进系统后必然被定位在某个特定的目录下。用UNIX系统的命令能够将你的位置改到另一个目录,但你仍然还要处在某一个目录下 。登录进系统后,你最开始所在的位置是你的主目录。可以用绝对或相对路径名来指定文件和目录的位置。绝对路径名n 完全指定文件或目录位置的方法。n 永远起始于UNIX系统层次结构的顶部(根目录)。n 永远以“/”开头。

10、n 不受当前位置的影响。n 在整个UNIX系统层次结构中是唯一的。 绝对路径名的例子如下:下面的这些路径名说明了名为f1的文件在UNIX系统层次结构中的位置。注意有很多文件叫f1,但它们都有唯一的绝对路径名。/tmp/f1/home/user1/f1/home/user2/f1/home/user3/f1/home/user3/memo/f1相对路径名n 永远起始于你的当前位置。n 永远不会以“/”打头。n 仅仅相对于你的当前位置才能保证唯一性。n 常常短于绝对路径名。 相对路径名的例子如下:以下的例子指定的是文件f1的位置,但这些例子中的相对路径名决定于用户当前的位置。假设当前位置是/hom

11、e,则user1/f1user2/f1user3/f1user1/memo/f1假设当前位置是/home/user3,则f1memo/f1假设当前位置是/home/user3/memo,则f1应该注意的是:f1文件的相对路径名不是唯一的,但UNIX系统知道应该搜索并读取哪个文件,如:如果你当前在/home/user1,那么它读取的是/home/user1/f1; 如果你当前在/home/user3/memo,那么它读取的是/home/user3/memo/f1。同样要注意到相对路径名一般会比绝对路径名短。如,如果你在/home/user3/memo目录下,可以用以下命令中的任何一种打印f1文件

12、:n 绝对路径名lp /home/user3/memo/f1n 相对路径名lp f1在这种情况下,用相对路径名可以少键许多字符。注意使用相对路径名时,要明白你所处的当前位置,这点很重要,当系统的不同目录下有多个同名文件时,这样可以保证读取到正确的文件。UNIX系统内部通过绝对路径名来查找所有的文件或目录。这样是很有意义的,因为绝对路径名能绝对、唯一地表示一个文件或目录(因为只有一个根目录)。UNIX系统允许用户出于打字方便使用相对路径名。4.5一些特殊的目录注释绝对路径名相对于/home/user3的路径名/home./home/user2./user2/home/user1/f1./user

13、1/f1/././tmp/f1././tmp/f1/usr/bin/vi././usr/bin/vi创建一个目录时,该目录下有两个条目点(.)和点点(. .)被自动创建。这两个条目在指定相对路径名时常常被用到。你会发现前一节关于相对路径名的例子只能用来向下定位文件或目录。使用 . 可以向上定位文件或目录。登录目录当一个用户加入到系统时,他(她)会被分配一个登录名,还可能分配一个密码,系统会创建一个归用户所有和控制的目录。这个目录通常创建在/home目录下,名字与用户的登录名一样。用户这时可以在这个目录下创建任何文件和目录。当你登录进系统时,UNIX系统将你放置在这个目录下。因此这个目录被称为你

14、的登录目录或者Home目录。点(.)这个称为点的条目代表你当前的目录位置。 点(.)的例子如下:如果你当前在目录/home/user3,则.代表当前目录/home/user3./f1代表/home/user3/f1./memo/f1代表/home/user3/memo/f1点点(.)这个称为点点的条目代表你当前目录对上一层的位置,常被称为父目录。每个目录下面可以有多个文件和子目录,但每个目录只能有一个父目录。因此往上定位不会产生混淆。根目录(/)和其他目录一样,包含点和点点这两个条目。但由于根目录没有父目录,它的点点条目指自己。 点点(.)的例子如下:(1)如果你当前在/home,则.代表 /

15、./.也代表 /./tmp代表/tmp./tmp/f1代表/tmp/f1(2)如果你当前在/home/user3,则.代表 /home./.代表 /./user2代表/home/user2./user1/f1代表/home/user1/f1././tmp/f1代表/tmp/f1以上两组例子中,有两个例子的绝对路径名比相对路径名要短。如果相对路径定位到了根目录这级,那么应该用绝对路径代替相对路径。4.6文件系统的基本命令注释跟文件夹一样,目录是组织文件的一种方式。本章剩下的内容将介绍如何使用基本的目录管理命令完成以下事情:n 显示你当前所在的目录。n 查看在当前目录下的文件和目录。n 将你的位置

16、定位到另一个目录。n 创建一个目录。n 删除一个目录。这章不讨论文件,只学习有关目录的内容。4.7pwd 显示当前的工作目录注释当你登录到UNIX系统后,无论何时,都被定位在文件系统的某一个目录下。你所在的这个目录常被称为你的工作目录。pwd命令可以报告你所在目录的绝对路径名,这样你可以迅速地得知你的工作目录。由于在UNIX系统中用户可以很容易地在文件系统中移动,故所有的用户都依靠这个命令来确定其在文件系统层次结构中的位置。在文件系统中移动时,新用户应当频繁地使用这个命令显示其当前位置。4.8ls 列举一个目录的内容注释ls 命令用来列举文件和目录的名字。在没有参数的情况下,ls命令用来显示当

17、前目录下的文件和目录的名字。ls接受指定一个文件或目录的相对或绝对路径名的参数。当参数是一个文件的路径时,ls显示与指定文件有关的信息。当参数是一个目录的路径时,ls 显示该目录的内容。ls支持很多选项,通过这些选项可以提供更多的信息。一个命令行可以指定多个选项,以显示更详尽的文件或目录信息。一些比较常用的选项如下:n -a列出所有的文件,包括以点(.)打头的文件。通常情况下,点文件被隐藏起来,除非采用-a这个选项。一般来说,这些点文件包含的是你的用户进程或应用程序的配置信息。n -d列举的是目录的特征,而不是目录的内容。常常和-l用在一起以显示目录的状态。n -l列出每个文件的长格式信息,包

18、括类型、模式、联接数目、所有者、所在组、大小(按字节算) 、修改日期和文件名。n -F显示结果中用斜杠(/)表示一个目录,用星号(*)表示可执行文件。n -R递归地显示指定目录及其子目录下的文件。例子$ pwd/home/user3$ ls F /home绝对路径名作为参数user1/ user2/ user3/$ ls F .相对路径名作为参数user1 /user2/ user3/$ ls F ./user1相对路径名作为参数f 1$ ls l memo以目录的相对路径名作为参数-rw-rw-rw 1 user3 class 27 Jan 24 06:11 f1-rw-rw-rw1 use

19、r3 class 37 Jan 23 19:03 f2$ ls ld memo显示目录memo的信息drwxr-xr-x 2 user3 class 1024 Jan 20 10:23 memo$ ls l f1 f2多参数、文件的相对路径名作为参数-rw-rw-rw 1 user3 class 27 Jan 24 06:11 f1-rw-rw-rw 1 user3 class 37 Jan 23 19:03 f2$ ls R子目录递归显示memo f1 f2./memo:f1 f2$ ls user2user2 不在当前目录下user2 not foundHP-UX的简便命令惠普的UNIX系

20、统为带选项的ls提供以下一些快捷命令:UNIX系统命令HP-UX的对应命令ls -Flsfls -lllls -Rlsr4.9cd 改变目录注释将幻灯片中这个树状结构想像成一个路标图,它指示系统中所有目录和文件的位置。任何时候你都处于某一个目录。cd命令可以让你改变所处的目录,移到文件层次系统的其他位置。cd命令的语法是:cd path_name其中path_name是你要进入目录的相对或绝对路径名。如果执行时没有指定参数,cd命令会将你带回你的登录目录(或主目录)。因此如果你在文件系统层次结构中“迷路”,只需执行cd命令,就可以回到家了(返回主目录)。注意当使用cd命令在文件系统层次结构中移

21、动时,应该常发pwd命令以确定你所在的位置。POSIX shell的增强cd命令POSIX shell能记忆你上一次所在的目录。cd命令仍旧按照你的要求改变目录,但增加了一些特性可以让你少敲一些字。cd命令能记忆你上一次所在的目录(存在环境变量OLDPWD中),可以用cd 访问这个变量,如:$ pwd/home/user3/tree$ cd /tmp$ pwd/tmp$ cd 将你带到前一个目录/home/user3/tree4.10find命令注释find命令是唯一一个可以在整个文件系统中作自动查找的命令。它很慢,会占用大量CPU资源。应当少用这个命令。path_list指路径名的列表,一般

22、来自一个目录。常常用点(.)作为这个参数。find 命令递归地搜索被指定的路径,查找命令行中表达式(expression)所要求的文件。当find找到一个符合条件的文件时,它还可以执行同样由expression指定的任务。其中最常见的任务是打印查找到的文件的路径名。expression由关键字和参数组成,可以指定搜索要求和找到匹配时要执行的任务。有人觉得find命令很复杂,其中一点原因就是在expression中的关键字全部用连字符(-)打头,这样看起来好像参数跑到选项前面去了。4.11mkdir 和 rmdir 创建和删除目录注释mkdir 命令可以创建一个目录。这些目录可以用来组织文件。当

23、创建了一个目录后,两个子目录点(.)和点点(.)被自动创建,它们分别代表当前目录和父目录。注意:创建目录并没有改变你在文件系统中的当前位置。在默认情况下,当指定被创建目录的绝对或相对路径时,所有的中间目录必须存在。mkdir命令可以使用以下这些选项:n -p如果中间目录不存在,创建中间目录。n -m mode创建完指定的目录后,将其权限设为mode指定的权限。下面这个命令将创建fruit 目录,如果fruit目录不存在:$ mkdir p fruit/applefruit/grapefruit/orangermdir命令可以删除一个目录。目录必须为空(就是说,这个目录下除了点和点点之外没有其他的条目)。rmdir命令的参数必须是已存在的目录名。另外,不能删除你的当前目录和根目录之间的任何目录。这两个命令可以接受多个参数。mkdir命令的参数代表新目录的名字,rmdir命令的参数必须是已存在目录的名字。与其他用文件或目录名作为参数的命令一样, mkdir和rmdir都可以使用绝对或相对路径名。4.12复习注释在下面的例子

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论