Linux 目录介绍及相关操作cd、pwd、mkdir、rmdir

目录

Linux目录介绍:

Linux常见处理目录指令:

cd (变换目录): 

pwd(显示目前所在的目录)

mkdir (创建新目录)

rmdir (删除“空”的目录)


Linux目录介绍:

常见目录:

> /etc/:几乎系统的所有设置文件均在此,尤其 passwd,shadow 。
> /boot:开机配置文件,也是默认摆放核心 vmlinuz 的地方。
> /usr/bin, /bin:一般可执行文件摆放的地方。
> /usr/sbin, /sbin:系统管理员常用指令集。
> /dev:摆放所有系统设备文件的目录。
> /var/log:摆放系统登录文件的地方。
> /run:CentOS 7以后才有,将经常变动的项目(每次开机都不同,如程序的PID) 移动到内存暂存,所以 /run 并不占实际磁盘容量。

绝对路径和相对路径:

 绝对路径:路径的写法“一定由根目录 / 写起”,例如: /usr/share/doc 这个目录。 
 相对路径:路径的写法“不是由 /写起”,例如由 /usr/share/doc 要到 /usr/share/man 下面 时,可以写成: “cd../man”这就是相                     对路径的写法啦!相对路径意指“相对于目前工作目 录的路径!”

注意:

如果是在写程序 (shell scripts) 来管理系统的条件下,务必使用绝对路径的写法。因为绝对路径的写法虽然比较麻烦,但是可以肯定这个写法绝对不会有问题。 如果使用相对路径在程序当中,则可能由于执行的工作环境不同,导致一些问题的发生。 

特殊目录:

.    :代表当前目录。
..   :代表上一级目录。
-    :回到前一个工作目录(cd -)。
~   :当前用户的主文件夹。
~user1  :查看user1用户的主文件夹(user1 是个账号名称)。 

特别提示:

1、在所有目录下面都会存在的两个目录,分别是“.”与“..” 分别代表此层与上层目录的意思。可以通过 ls -al 命令查看。

根目录 “/” 是否有上层目录呢?通过命令ls -al /查看:

可以看到根目录下确实存在 ... 两个目录,再仔细的查阅, 可发现这两个目录的属性与权限完全一致,这代表根目录的上一层(..)与根目录自己(.)是同一个目录。

Linux常见处理目录指令:

cd       变换目录。
pwd    显示当前目录。参数: -P :显示出确实的路径,而非使用链接 (link) 路径。
mkdir  创建一个新的目录。
              参数:
                  -m :设置文件的权限,直接设置,不需要看默认权限 。
                  -p  :直接将所需要的目录(包含上层目录)递回创建起来。如:mkdir -p test1/test2/test3/test4 一次一共创建了四个目录。
rmdir  删除一个空目录。
              参数:
                  -p:连同“上层” “空的”目录也一起删除。如:rmdir -p test1/test2/test3/test4 一次一共删除了四个目录。

cd (变换目录): 

[dmtsai@study ~]$ su - # 先切换身份成为 root 看看!
[root@study ~]# cd [相对路径或绝对路径]
# 最重要的就是目录的绝对路径与相对路径,还有一些特殊目录的符号啰!
[root@study ~]# cd ~dmtsai
# 代表去到 dmtsai 这个使用者的主文件夹,亦即 /home/dmtsai
[root@study dmtsai]# cd ~
# 表示回到自己的主文件夹,亦即是 /root 这个目录
[root@study ~]# cd
# 没有加上任何路径,也还是代表回到自己主文件夹的意思喔!
[root@study ~]# cd ..
# 表示去到目前的上层目录,亦即是 /root 的上层目录的意思;
[root@study /]# cd -
# 表示回到刚刚的那个目录,也就是 /root 啰~
[root@study ~]# cd /var/spool/mail
# 这个就是绝对路径的写法!直接指定要去的完整路径名称!
[root@study mail]# cd ../postfix
# 这个是相对路径的写法,我们由/var/spool/mail 去到/var/spool/postfix 就这样写!

cd是Change Directory的缩写,这是用来变换工作目录的指令。注意,目录名称与cd指令之间存在一个空格。 一登陆Linux系统后,每个帐号都会在自己帐号的主文件夹中。那回到上一层目录可以用“ cd .. ”。 利用相对路径的写法必须要确认你目前的路径才能正确的去到想要去的目录。例如上表当中最后一个例子, 必须要确认你是在/var/spool/mail当中,并且知道在/var/spool当中有个mqueue的目录才行啊~ 这样才能使用cd ../postfix 去到正确的目录说,否则就要直接输入cd /var/spool/postfix 。

其实,我们的提示字符,亦即那个 [root@study ~]# 当中,就已经有指出目前的目录了, 刚登陆时会到自己的主文件夹,而主文件夹还有一个代码,那就是“ ~ ”符号! 例如上面的例子可以发现,使用“ cd ~ ”可以回到个人的主文件夹里头去呢! 另外,针对cd 的使用方法,如果仅输入 cd 时,代表的就是“ cd ~ ”的意思。

pwd(显示目前所在的目录)

[root@study ~]# pwd [-P]
选项与参数:
-P :显示出确实的路径,而非使用链接 (link) 路径。
范例:单纯显示出目前的工作目录:
[root@study ~]# pwd
/root <== 显示出目录啦~
范例:显示出实际的工作目录,而非链接文件本身的目录名而已
[root@study ~]# cd /var/mail <==注意,/var/mail是一个链接文件
[root@study mail]# pwd
/var/mail <==列出目前的工作目录
[root@study mail]# pwd -P
/var/spool/mail <==怎么回事?有没有加 -P 差很多~
[root@study mail]# ls -ld /var/mail
lrwxrwxrwx. 1 root root 10 May 4 17:51 /var/mail -> spool/mail
# 看到这里应该知道为啥了吧?因为 /var/mail 是链接文件,链接到 /var/spool/mail
# 所以,加上 pwd -P 的选项后,会不以链接文件的数据显示,而是显示正确的完整路径!

mkdir (创建新目录)

[root@study ~]# mkdir [-mp] 目录名称
选项与参数:
-m :设置文件的权限喔!直接设置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上层目录)递回创建起来!
范例:请到/tmp下面尝试创建数个新目录看看:
[root@study ~]# cd /tmp
[root@study tmp]# mkdir test <==创建一名为 test 的新目录
[root@study tmp]# mkdir test1/test2/test3/test4
mkdir: cannot create directory ‘test1/test2/test3/test4’: No such file or directory
# 话说,系统告诉我们,没可能创建这个目录啊!就是没有目录才要创建的!见鬼嘛?
[root@study tmp]# mkdir -p test1/test2/test3/test4
# 原来是要建 test4 上层没先建 test3 之故!加了这个 -p 的选项,可以自行帮你创建多层目录!
范例:创建权限为rwx--x--x的目录
[root@study tmp]# mkdir -m 711 test2
[root@study tmp]# ls -ld test*
drwxr-xr-x. 2 root root 6 Jun 4 19:03 test
drwxr-xr-x. 3 root root 18 Jun 4 19:04 test1
drwx--x--x. 2 root root 6 Jun 4 19:05 test2
# 仔细看上面的权限部分,如果没有加上 -m 来强制设置属性,系统会使用默认属性。

rmdir (删除“空”的目录)

[root@study ~]# rmdir [-p] 目录名称
选项与参数:
-p :连同“上层”“空的”目录也一起删除
范例:将于mkdir范例中创建的目录(/tmp下面)删除掉!
[root@study tmp]# ls -ld test* <==看看有多少目录存在?
drwxr-xr-x. 2 root root 6 Jun 4 19:03 test
drwxr-xr-x. 3 root root 18 Jun 4 19:04 test1
drwx--x--x. 2 root root 6 Jun 4 19:05 test2
[root@study tmp]# rmdir test <==可直接删除掉,没问题
[root@study tmp]# rmdir test1 <==因为尚有内容,所以无法删除!
rmdir: failed to remove ‘test1’: Directory not empty
[root@study tmp]# rmdir -p test1/test2/test3/test4
[root@study tmp]# ls -ld test* <==您看看,下面的输出中test与test1不见了!
drwx--x--x. 2 root root 6 Jun 4 19:05 test2
# 瞧!利用 -p 这个选项,立刻就可以将 test1/test2/test3/test4 一次删除~
# 不过要注意的是,这个 rmdir 仅能“删除空的目录”喔!

如果想要删除旧有的目录时,就使用rmdir吧!例如将刚刚创建的test杀掉,使用“ rmdir test”即可!请注意呦!目录需要一层一层的删除才行!而且被删除的目录里面必定不能存在其他的目录或文件! 这也是所谓的空的目录(empty directory)的意思啊!那如果要将所有目录下的东西都杀掉呢?! 这个时候就必须使用“ rm -r test ”啰!不过,还是使用 rmdir 比较不危险!你也可以尝试以 -p 的选项加入,来删除上层的目录喔!

 

以上内容和示例总结于鸟哥Linux私房菜(基础篇第四版),因为没有资源链接,这里设为了原创才能保存。^_^ ^_^ ^_^

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值