我侄子好可爱

目录操作和文件操作

上一篇 / 下一篇  2008-04-28 09:57:29 / 个人分类:LINUX应用

4、目录操作和文件操作
  
    在介绍文件的操作之前,我们先了解一下文件的类型。目录树包括以下文件类型:
  
    a、普通文件:包括文档文件、数据文件、程序、shell脚本等我们常接触到的文件。
  
    b、目录文件:目录文件包含着一个该目录下的文件和本身以及上一级的链表。这是由操作系统维护的文件。它至少包括两个记录,一个是它自身(“.”),一个是它的上一级目录(“..”)。注意,根目录的上一级目录还是它自身。
  
    c、设备文件:和所有UNIX一样,linux把所有设备都作为一个文件来处理,包括IO设备。
  
    d、进程通信文件:即所谓的先进先出文件,主要是为进程间通信用的。
  
    我们一般登入系统后,当前的工作目录都是自己的主目录,想看看主目录里有什么东东?你可以使用ls命令试试。输出就如同dir /w一样^_^。要查看隐含文件使用命令行:
  
   ls -a
  
    可以看见多了不少以点(“.”)开头的隐藏文件。如果还想进一步查看文件的详细信息,那就查看长格式的输出吧,使用
  
   ls -l
  
    当然,我们完全可以组合使用多参数,有两种方法:
  
   ls -a -l 或者 ls -al
  
    都可以得到该目录下所有文件的详细列表,比dos下dir的输出还详细——只不过文件的名却在右边。如果文件太多,一屏显示不下怎么办呢?ls命令并没有提供dir的/p开关的功能,不过按照UNIX系统设计的积木原则,我们可以用命令的组合获得我们需要的任何功能。象这次我们可以使用输出重定向,使用通道,对于下面这个命令,你应该不会觉得别扭吧?
  
   la -l | more
  
    这和dos下的管道一模一样嘛:),还不只这个,连改变当前目录的cd命令,也是和dos中的用法一样,看来dos还是没有完全抛弃UNIX的影响。
  
    cd命令的用法和dos中相似,不同的是cd和后边的目录(包括代表上一级目录的..)之间必须有空格隔开。多出几次错误信息你就会记得这一点了,呵呵。记住:
  
  cd.. ------wrong
   cd .. or cd / ------right
  
    查看当前的路径的命令是pwd,如前所说的,它是bash的内部命令,cd也是。它存在价值在于你不用时刻面对着一个可能非常长的路径,当然你觉得有必要,也可以通过对bash的适当配置使得它的提示符类似于dos模式。
  
    建立和删除的目录命令也很容易从字面上理解,建立目录使用mkdir,删除空目录用rmdir。注意,你建立目录、删除目录的操作,都需要相应的权限。
  
    要想做到dos下的deltree的功能,需要使用文件的删除命令rm的递归删除参数-r或-R。这个命令的基本格式是
  
   rm [-option] filename
  
    例如要删除/tmp/newtemp所有文件和子目录,可以使用如下命令:
  
   rm -r /tmp/newtemp
  
    这样的话,系统会一个一个文件问你是否需要删除,如果你可以确信这个目录下的所有东西都没有保留的价值的话,你可以加上一个-f的参数,表示强制删除,不再询问,如:
  
   rm -rf /tmp/newtemp (还记得我们使用多个参数的两种方法么?)
  
    注意,在linux中没有类似undelete的命令,不要随意使用带-f、-r、-R参数的rm命令哦:)
  
    文件的拷贝使用cp命令,使用的格式如下:
  
   cp [-option] soursefile targetfile
  
    注意,和dos中的copy不同的是:
  
  soursefile和targetfile不能相同;
  cp需要使用递归选项-r来完成带文件的目录的拷贝;
  cp可以使用-u开关来保留文档的最新版本。当使用-u选项时,如果目标文件存在且最后修改时间比源文件晚,则不覆盖。
    我们常用的还有重命名操作命令,或者说移动文件命令,mv,格式如下:
  
   mv [-option] source target
  
    mv有个非常有用的选项 -b,表示给被覆盖的文件产生一个备份。
  
    cat命令用于把所给的文件以所给顺序在标准输出上输出。格式如下:
  
   cat [-ption] [file]
  
    如果没有设置参数file,则把从标准输入中读入的文件从标准输出上输出。如果file以一个减号来代替,则cat仍然从标准输入上读入数据。例如:
  
   cat - file1 - >file2
  
    这个命令表示先从标准输入读入数据,直到输入结束字符Ctrl+d,接下来从文件file1中输入,接着又从键盘输入直到输入结束字符,把这些结构都输出到file2文件中。实际上做了个在file1前后均加了一段文字然后存成了file2文件的操作。
  
    用这个命令还可以把多个文件连接在一起。例如:
  
   cat *.txt > outall.txt
  
    表示把所有的txt后缀的文件按照字母顺序连接起来,然后再写到outall.txt文件里。
  
    如果[file]选项是二进制文件,而又不是把它输出到一个文件而是标准输出的话,由于终端可能要对不可打印字符进行处理,可能会出现乱码。可以使用-v选项来解决这个问题。这个选项把不可打印字符(从ASCII码的000到037的字符)用^和ASCII码从100到137的字符组合来表示。
  
    还有三个用来显示文件的命令,它们分别是head、tail、more。
  
    head [-option] [file] 是用来显示文件的前面一部分的。可以使用-num选项来显示前num行,也可以使用选项-c num使head输出前num个字节。其它的使用和cat相似。
  
    tail [-option] [file] 是和head对应的显示文件后一部分的命令。选项和head命令一样。
  
    more命令就是前面我们曾经借助它进行分页显示的命令,它也可以直接用来分页显示文本文档。命令格式和前面几个命令一样。在显示完一页后,more会提示用户输入:如果输入空格键或是f,则显示下一页;如果输出n加空格键,则用来显示后面的n 行;回车键用来显示下一行。
  
    这几个命令都是网络管理比较常用的查看日志文件的工具,可以用man命令获得它们更详细的帮助。
  
    还有几个显示二进制文件的命令,例如od、mn和strings,你也可以通过man获得帮助。

TAG: 目录 文件

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

数据统计

  • 访问量: 11533
  • 日志数: 19
  • 图片数: 1
  • 建立时间: 2007-10-15
  • 更新时间: 2008-05-08

RSS订阅

Open Toolbar