首页    新闻    下载    文档    论坛     最新漏洞    黑客教程    数据库    搜索    小榕软件实验室怀旧版    星际争霸WEB版    最新IP准确查询   
名称: 密码:      忘记密码  马上注册
操作系统 :: windows

Linux档案与目录管理


(略)
  目录与路径:



  由前一章节<a target=_blank href=http://www.chinaitlab.com/www/news/article_show.asp?id=8313> 『Linux 的档案权限与目录配置』</a> 中约略了解到 Linux 的『树状目录』概念之后,接下来就得要实际的来搞定一些基本的路径问题了!这些问题当中,最重要的莫过于『绝对路径』与『相对路径』的意义啦!赶紧来了解一下!



  绝对路径与相对路径:



  在开始目录的切换之前,你必须要先了解一下所谓的『路径, PATH』,有趣的是:什幺是『相对路径』与『绝对路径』?如果你还记得前一章的内容的话,那幺应该还记得 Linux 里面的目录是呈现『树状目录』的情况,有就是有分支的啦!好了,假设你需要在任意一个目录下变换到根目录的 etc 底下,那幺你就应该要使用『 cd /etc 』这个情况,这也就是所谓的『绝对路径』,他是从根目录连续写上来的一个情况,所以不论你在哪一个路径现执行这一个指令,都会将你移动到该路径下。那如果我是使用『 cd etc 』呢?那表示你要切换到『目前这个目录下的 etc 目录中』,情况可是不一样的呦!通常第一次接触 Linux 的使用者常会搞错这一个路径的观念!



  绝对路径:路径的写法『一定由根目录 / 写起』,例如: /usr/share/doc 这个目录。



  相对路径:路径的写法『不是由 / 写起』,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:『cd ../man』这就是相对路径的写法啦!



  那幺相对路径与绝对路径有什幺了不起呀!?喝!那可真的是了不起了!假设您写了一个套件,这个套件共需要三个目录,分别是 etc, bin, man 这三个目录,然而由于不同的人喜欢安装在不同的目录之下,假设甲安装的目录是 /usr/local/packages/etc, /usr/local/packages/bin 及 /usr/local/packages/man ,不过乙却喜欢安装在 /home/packages/etc, /home/packages/bin, /home/packages/man 这三个目录中,请问如果需要用到绝对路径的话,那幺是否很麻烦呢?是的!如此一来每个目录下的东西就很难对应的起来!这个时候相对路径的写法就显的特别的重要了!



  此外,如果您跟我一样,喜欢将路径的名字写的很长,好让自己知道那个目录是在干什幺的,例如:/data4/staiwan19961109/models-3/smoke 这个目录,而另一个目录在 /data4/staiwan19961109/models-3/cctm ,那幺我从第一个要到第二个目录去的话,怎幺写比较方便?当然是『 cd ../cctm 』比较方便?!对吧!



  好了,既然要谈到目录这个东西,自然就需要了解一下有哪些常用的目录『符号』代表的意义啦!



  .



  代表此层目录



  ..



  代表上层目录



  ~



  代表自己的家目录



  ~user 代表到 user 这个人的家目录



  底下我们要来谈一谈目录与路径的几个常用的指令:



  cd



  变换目录



  pwd



  显示目前的目录



  mkdir 建立一个新目录



  rmdir 删除一个里面是空的空目录



  cd 与 pwd



  这两个指令主要是在『变换目前目录』与『显示目前所在目录』的工作,底下说一说他们的用途与语法吧!



  cd



  语法: [root @test /root ]# cd [相对路径或绝对路径]



  参数说明:



  路径有『相对路径』与『绝对路径』的分别,请千万小心?!



  范例:



  [root @test /root]# cd ..



  <==回到上一层目录



  [root @test /root]# cd ../home



  <==相对路径的写法



  [root @test /root]# cd /var/www/html



  <==绝对路径的写法



  [root @test /etc]# cd



  <==回到使用者的家目录



  [root @test /etc]# cd ~



  <==回到使用者的家目录!



  [root @test /etc]# cd ~test



  <==回到 test 这个使用者的家目录



  说明:



  cd 是 change directory 的缩写,这是用来变换工作路径的指令。注意,路径与 cd 指令之间存在一个空格!一登入 Linux 系统后,root 会在 root 的家目录,亦即 /root 下,至于使用者会在预设的 /home/username 底下,例如鸟哥的 ID 为 vbird ,则以 vbird 的身份登入后,会到 /home/vbird 这个路径下。OK!那回到上一层可以用『 cd .. 』而到相对路径可到『 cd ../bird』,至于绝对路径则是 cd /usr/sbin !注意喔,在前面的提示字元会改变路径名称!此外,家目录还有一个代码,那就是『 ~ 』符号!例如上面的例子可以发现,使用『 cd ~ 』可以回到个人的家目录里头去呢!此外,如果你的 Linux 主机当中有个 testing 的帐号,你要到他的家目录去,可以下达『 cd ~testing』立刻去到 testing 的家目录?!



  pwd



  语法: [root @test /root ]# pwd



  范例:



  [root @test root]# cd /home/test



  [root @test test]# pwd



  /home/test



  <==显示目前你所在的目录呦!



  说明:



  pwd 是 print working directory 的缩写,也就是显示目前所在目录的指令,例如在上个表格最后的目录是 /home/test 这个目录,但是提示字元仅显示 test ,如果你想要知道目前所在的目录,可以输入 pwd 即可:



  此外,由于很多的套件所使用的目录名称都相同,例如 /usr/local/etc 还有 /etc ,但是通常 Linux 仅列出最后面那一个目录而已,这个时候你就可以使用 pwd 来知道你的所在目录?!免得搞错目录,结果……



  mkdir 与 rmdir 管理目录:



  那幺要如何建立删除目录呢?很简单呀!就用 mkdir 与 rmdir ,看出来了吗?没错啦!就是 make/remove directory 的缩写说!看要怎幺用吧!



  mkdir



  语法: [root @test /root ]# mkdir [-mp] [目录名称]



  参数说明:



  -m :设定档案的权限喔!直接设定,不需要看 umask 这个内容的脸色!



  -p :帮助你直接将上面的目录递回建立起来!



  范例:



  [root @test /root]# cd tmp



  [root @test /tmp]# mkdir test<==建立名称为 test 的目录



  [root @test /tmp]# mkdir -p test1/test2/test3/test4 <==直接建立 test2...等上层目录



  [root @test /tmp]# mkdir -m 711 testqq



  <==建立权限为 711 的目录!



  [root @test /tmp]# ll test*



  drwxrwxr-x



  2 test



  test



  4096 Feb



  6 20:47 test/



  drwxrwxr-x



  3 test



  test



  4096 Feb



  6 20:48 test1/



  drwx--x--x



  2 test



  test



  4096 Feb



  6 20:48 testqq/



  说明:



  如果想要建立新的目录的话,那幺就使用 mkdir 吧! 不过,请注意呦!在预设的情况下,你所需要的目录得一层一层的建立才行!例如:假如你要建立一个目录为 /home/bird/testing/test1,那幺首先必须要有 /home 然后 /home/bird ,再来 /home/bird/testing 都必须要存在,才可以建立 test1 这个目录!假如没有 /home/bird/testing 时,就没有办法建立 test1 的目录?!不过,现在有个更简单有效的方法啦!那就是加上 -p 这个参数喔!你可以直接下达:『 mkdir -p /home/bird/testing』则系统会自动的帮你将 /home, /home/bird, /home/bird/testing 依序的建立起目录!并且,如果该目录本来就已经存在时,系统也不会显示错误讯息喔!挺快乐的吧! ^_^



  rmdir



  语法: [root @test /root ]# rmdir [-p] [目录名称]



  参数说明:



  -p :将上层的目录也删除吧!



  范例:



  [root @test /root]# rmdir test<==删除名称为 test 的目录



  [root @test tmp]# ll



  drwxrwxr-x



  3 test



  test



  4096 Feb



  6 20:48 test1/



  [root @test tmp]# rmdir test1



  rmdir: `test1': Directory not empty



  [root @test tmp]# rmdir -p test1/test2/test3/test4



  [root @test tmp]$ ll



  说明:



  如果想要建立删除旧有的目录时,就使用 rmdir 吧!例如将刚刚建立的 test 杀掉,使用 rmdir test 即可!请注意呦!目录需要一层一层的删除才行!而且被删除的目录里面必定不能还有其他的目录或档案!那如果要将所有目录下的东西都杀掉呢?!这个时候就必须使用 rm -rf test ?!不过,还是使用 rmdir 比较不危险!不过,你也可以尝试以 -p 的参数加入,来删除上层的目录喔!



  环境变数 PATH



  在提过了绝对路径、相对路径与指令的下达方式之后,您应该会稍微注意到一件事情,那就是:『为什幺我可以在 /root 底下执行 /bin/ls 这个档案呢?』对呀!为什幺我可以直接执行 ls 就一定可以显示出一些讯息而不会说找不到该档案呢?这是因为环境变数 PATH 的帮助所致呀!当我们在执行一个指令的时候,系统会依照 PATH 的设定去每个 PATH 定义的路径下搜寻档案,先搜寻到的指令档案先被执行之!现在,请下达 echo $PATH , echo 有『显示、印出』的意思,而 PATH 前面加的 $ 表示后面接的是变数,所以即会显示出目前的 PATH 了!



  [root@test root]# echo $PATH



  /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin



  注意到了吗?对啦! /bin 在 PATH 的设定之中,所以自然就可以找的到 ls 啦!



  如果你将 ls 移动到 /root 底下的话,然后你自己本身也在 /root 底下,但是当你执行 ls 的时候,他就是不理你?怎幺办?这是因为 PATH 没有 /root 这个目录,而你又将 ls 移动到 /root 底下了,自然系统就找不到可执行档了,因此就会告诉你, command not found !那幺该怎幺克服这种问题呢?有两个方法,其一:直接将 /root 的路径加入 PATH 当中!如何增加?可以使用:



  PATH=”$PATH”:/root



  这种方式来增加即可!另一种方式则是使用完整档名,亦即直接使用相对或绝对



  
<< 如何找出磁盘中某个大小范围内的文件 Linux终端机下的彩色显示 >>
API:
gipsky.com& 安信网络
网友个人意见,不代表本站立场。对于发言内容,由发表者自负责任。

系统导航

 

Copyright © 2001-2010 安信网络. All Rights Reserved
京ICP备14013333号-8