在linux下,如果想对目录进行切换等操作,必须了解目录下所谓的路径。而路径又常常分为相对路径和绝对路径。这两种路径的写法各有好处,在不同场景下择优选择。
目录操作最常见的几种操作是:切换目录,创建目录,删除目录等。不过,linux下有一些目录比较特殊,常见的特殊目录如下:
. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表『目前使用者身份』所在的家目录
~ppp 代表ppp这个使用者的家目录(ppp是个帐号名称)
需要特别注意的是:在所有目录底下都会存在的两个目录,分别是『.』与『..』分别代表此层与上一级目录的意思。
对于根目录(/)来说同样存在.与..两个目录,你可以用 ls -al / 命令验证下。不过根目录的上一层目录(..)与根目录自己(.)是同一个目录。
目录操作命令常见有:
cd:切换目录
pwd:显示目前的目录
mkdir:创建一个新的目录
rmdir:删除一个空的目录
cd (切换目录)
cd是Change Directory的缩写,这是用来变换工作目录的命令。注意,目录名称与cd命令之间存在一个空格。
[root@ppp ~]# cd [相对路径或绝对路径]
# 最重要的就是目录的绝对路径与相对路径
[root@ppp ~]# cd /home/peter
# 代表去到 peter 这个用户的家目录,即 /home/peter
[root@ppp peter]# cd ~
# 表示回到自己的家目录,即是/roo 这个目录
[root@ppp peter]# cd
# 当没有加上任何路径,也还是代表回到自己家目录的意思喔!
[root@ppp ~]# cd ..
# 表示去到当前目录的上一级目录
[root@ppp /]# cd -
# 表示回到自己的工作目录,也就是/root
[root@ppp ~]# cd /usr/bin
# 这个就是绝对路径的写法!直接指定要去的完整路径名称!
[root@ppp bin]# cd ../sbin
# 这个是相对路径的写法,我们由/usr/bin去到/usr/sbin
pwd (显示目前所在的目录)
pwd是Print Working Directory的缩写,也就是显示目前所在目录的命令,如果你想要知道目前所在的目录,可以输入pwd即可。pwd是以绝对路径的方法显示你当前的工作目录。
[root@ppp ~]# pwd [-P]
选项与参数:
-P :显示出确实的路径,而非使用连结 (link) 路径。
范例:显示出目前的工作目录:
[root@ppp ~]# pwd
/root <== 显示出目录
范例:显示出实际的工作目录,而非连结档本身的目录名
[root@ ~]# cd /var/mail <==注意,/var/mail是一个连结档
[root@ mail]# ls -l /var/mail
lrwxrwxrwx. 1 root root 10 Dec 17 2012 /var/mail -> spool/mail
[root@ppp mail]# pwd
/var/mail <==列出目前的工作目录
[root@ppp mail]# pwd -P
/var/spool/mail <==怎么回事?有没有加 -P 差很多
# 因为 /var/mail 是连结档,连结到 /var/spool/mail
# 所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!
mkdir (创建新目录)
mkdir是make directory的缩写,即创建目录。
[root@ppp ~]# mkdir [-mp] 目录名称
选项与参数:
-m :配置文件的权限喔!直接配置,而不是按默认权限(umask)配置。
-p :直接将所需要的目录(包含上一级目录)递回创建起来!
范例:到/tmp底下尝试创建数个新目录:
[root@ppp ~]# cd /tmp
[root@ppp tmp]# mkdir test <==创建名为test的新目录
[root@ppp tmp]# mkdir test1/test2/
mkdir: cannot create directory `test1/test2/':
No such file or directory <== 没办法直接创建此目录啊!
如果不用参数只能先创建test1目录然后切换目录到test1下再创建test2目录。
[root@www tmp]# mkdir -p test1/test2/
# 加了这个 -p 的选项,可以自行创建多层目录!
范例:创建权限为rwx--x--x的目录
[root@www tmp]# mkdir -m 711 test2
[root@www tmp]# ls -l
drwxr-xr-x 3 root root 4096 Jul 18 12:50 test
drwxr-xr-x 3 root root 4096 Jul 18 12:53 test1
drwx--x--x 2 root root 4096 Jul 18 12:54 test2
# 仔细看上面的权限部分,如果没有加上 -m 来强制配置属性,系统会使用默认属性。
#默认属性是umask
创建多层目录时要使用-p这个参数来递归创建。否则只能一层一层创建,只有第一层存在,然后再创建下一层。
删除目录xyz的命令:rm -rf xyz
No comments:
Post a Comment