1

2.10Linux下目录操作命令大全

Posted by 撒得一地 on 2015年10月12日 in Linux教程

在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这个参数来递归创建。否则只能一层一层创建,只有第一层存在,然后再创建下一层。

rmdir (删除空的目录)
如果想要删除旧有的目录时,就使用rmdir,即remove directory的缩写。不过被删除的目录里面不能存在其他的目录或文件。

[root@ppp ~]# rmdir [-p] 目录名称

选项与参数:

-p :连同上一级空的目录也一起删除

范例:将於mkdir范例中创建的目录(/tmp底下)删除掉!
[root@ppp 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

[root@ppp tmp]# rmdir test   <==可直接删除掉,没问题

[root@ppp tmp]# rmdir test1  <==因为尚有内容,所以无法删除!

rmdir: `test1': Directory not empty

[root@ppp tmp]# rmdir -p test1 <=仍无法删除,必须将所有目录包含进来

rmdir: `test1': Directory not empty 

[root@www tmp]# rmdir -p test1/test2/

[root@www tmp]# ls -l  <==底下test与test1被删除

drwx--x--x  2 root  root 4096 Jul 18 12:54 test2

# 利用 -p 这个选项,立刻就可以将 test1/test2/ 一次删除

# 不过要注意的是,这个 rmdir 仅能删除空的目录!

用rmdir删除目录时,如果该目录里面含有文件,则该目录不能被删除。当要删除多层空目录时,要一层一层删除,或者使用-p参数将所有目录包含进来递归删除。

标签:, ,

上一篇:

下一篇:

相关推荐

1 Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注

6 + 1 = ?

网站地图|XML地图

Copyright © 2015-2018 技术拉近你我! All rights reserved.
闽ICP备15015576号-1,版权所有©psz.