Pages

Tuesday, 30 July 2024

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

删除目录xyz的命令:rm -rf xyz

No comments:

Post a Comment