相对和绝对路径,CD命令,创建和删除目录,rm命令

时间:2020-12-30 17:44:55

相对和绝对路径

  • 绝对路径

    以根“/”开头的路径都是绝对路径。

    [root@aminglinux-01 ~]# ls /root/.ssh/authorized_keys 
    /root/.ssh/authorized_keys

    不管在那个路径下,都能都能通过绝对路径找到文件。从根“/”开始

  • 相对路径

    相对于当前目录的路径,不是从根“/”开始的路径

    [root@aminglinux-01 ~]# cd /etc/sysconfig/
    [root@aminglinux-01 sysconfig]# ls network-scripts/ifcfg-ens33 
    network-scripts/ifcfg-ens33
    [root@aminglinux-01 sysconfig]# pwd
    /etc/sysconfig
    [root@aminglinux-01 sysconfig]# ^C
  • pwd

    pwd命令是用来显示当前路径

cd命令

change directory ----> cd
切换目录命令

  • 还有一个非常实用的用法就是: cd -

    [root@aminglinux-01 sysconfig]# cd -
    /root
    [root@aminglinux-01 ~]# cd -
    /etc/sysconfig
    [root@aminglinux-01 sysconfig]# cd -
    /root
    [root@aminglinux-01 ~]# cd -
    /etc/sysconfig
    [root@aminglinux-01 sysconfig]# 

    这个命令的就是表示上一次目录的所在位置。切换非常方便。

  • 直接输入命令:cd

    无论在哪个目录下,输入cd都会回到登陆系统的用户的家目录下。

    [root@aminglinux-01 sysconfig]# pwd
    /etc/sysconfig
    [root@aminglinux-01 sysconfig]# cd
    [root@aminglinux-01 ~]# pwd
    /root
    [root@aminglinux-01 ~]# 
  • 命令:cd ~

    同样是直接返回用户的家目录

  • 命令:cd ..

    返回上一层目录

  • 其他选项不常用,可以man cd 来查看用法。

 

创建和删除目录

  • mkdir

    mkdir是创建目录命令 ==== make directory

    [root@aminglinux-01 ~]# date
    2017年 08月 07日 星期一 21:28:25 CST
    [root@aminglinux-01 ~]# ls /tmp/
    ks-script-suCXKE  systemd-private-8e1d573b9569400787aa2f163a2ae6d9-vmtoolsd.service-P3MfYI  systemd-private-d34b759511be4ef38bb8e43655f43872-vmtoolsd.service-ayt0DR  yum.log
    [root@aminglinux-01 ~]# mkdir /tmp/aminglinux/
    [root@aminglinux-01 ~]# ls /tmp/
    aminglinux  ks-script-suCXKE  systemd-private-8e1d573b9569400787aa2f163a2ae6d9-vmtoolsd.service-P3MfYI  systemd-private-d34b759511be4ef38bb8e43655f43872-vmtoolsd.service-ayt0DR  yum.log
    [root@aminglinux-01 ~]# ls -l /tmp/aminglinux/
    总用量 0
    [root@aminglinux-01 ~]# ls -ld /tmp/aminglinux/
    drwxr-xr-x. 2 root root 6 8月   7 21:35 /tmp/aminglinux/

    mkdir -p 创建连续的文件夹

    正常用mkdir创建连续的文件夹是不可以的,如下

    [root@aminglinux-01 ~]# mkdir /tmp/aminglinux/111/222/333
    mkdir: 无法创建目录"/tmp/aminglinux/111/222/333": 没有那个文件或目录

    如果想连续创建加 -p 属性,如下

    [root@aminglinux-01 ~]# mkdir /tmp/aminglinux/111/222/333
    mkdir: 无法创建目录"/tmp/aminglinux/111/222/333": 没有那个文件或目录
    [root@aminglinux-01 ~]# mkdir -p /tmp/aminglinux/111/222/333
    [root@aminglinux-01 ~]# tree /tmp/aminglinux/
    /tmp/aminglinux/
    └── 111
    └── 222
        └── 333
    3 directories, 0 files
    [root@aminglinux-01 ~]# 

mkdir -pv 创建连续的文件夹并显示创建过程

 [root@aminglinux-01 ~]# mkdir -pv /tmp/aminglinux/222/aaa/bbb/ccc/
mkdir: 已创建目录 "/tmp/aminglinux/222"
mkdir: 已创建目录 "/tmp/aminglinux/222/aaa"
mkdir: 已创建目录 "/tmp/aminglinux/222/aaa/bbb"
mkdir: 已创建目录 "/tmp/aminglinux/222/aaa/bbb/ccc/"
[root@aminglinux-01 ~]# 

 

  • rmdir

    rmdir是删除目录命令 ==== remove directory

  • rmdir 直接运行时不能删除非空目录,也就是只能删除空文件夹,如下
[root@aminglinux-01 ~]# rmdir /tmp/aminglinux/
rmdir: 删除 "/tmp/aminglinux/" 失败: 目录非空
[root@aminglinux-01 ~]# touch /tmp/aminglinux/222/aaa/1.txt
[root@aminglinux-01 ~]# rmdir /tmp/aminglinux/222/aaa/
rmdir: 删除 "/tmp/aminglinux/222/aaa/" 失败: 目录非空
[root@aminglinux-01 ~]# 
  • rmdir -p 也是可以连续删除空文件夹的。但必须是空的,如果是非空则删不掉,只删除空的
[root@aminglinux-01 ~]# mkdir -p /tmp/aminglinux/222/yyyy/uuuu/iiii/
[root@aminglinux-01 ~]# rmdir -pv /tmp/aminglinux/222/yyyy/uuuu/iiii/
rmdir: 正在删除目录 "/tmp/aminglinux/222/yyyy/uuuu/iiii/"
rmdir: 正在删除目录 "/tmp/aminglinux/222/yyyy/uuuu"
rmdir: 正在删除目录 "/tmp/aminglinux/222/yyyy"
rmdir: 正在删除目录 "/tmp/aminglinux/222"
rmdir: 删除目录 "/tmp/aminglinux/222" 失败: 目录非空
[root@aminglinux-01 ~]# 

rmdir只能删除目录,而且必须是空目录,要想全部删除只能先删除里面的文件夹后者是文件。-p 比较危险,一般不用。

 
# rm命令
### rm 删除命令 === > remove

之前学习的rmdir 删除局限性是比较大的。这回试试rm命令能否顺利删除有文件的目录呢

[root@aminglinux-01 ~]# tree /tmp/aminglinux/
/tmp/aminglinux/
├── 111
│   └── 222
│       └── 333
└── 222
    └── aaa
        ├── 1.txt
        └── bbb
            └── ccc

7 directories, 1 file
[root@aminglinux-01 ~]# rm /tmp/aminglinux/222/
rm: 无法删除"/tmp/aminglinux/222/": 是一个目录
[root@aminglinux-01 ~]# rm -r /tmp/aminglinux/222/
rm:是否进入目录"/tmp/aminglinux/222/"? y
rm:是否进入目录"/tmp/aminglinux/222/aaa"? y
rm:是否进入目录"/tmp/aminglinux/222/aaa/bbb"? y
rm:是否删除目录 "/tmp/aminglinux/222/aaa/bbb/ccc"?y
rm:是否删除目录 "/tmp/aminglinux/222/aaa/bbb"?y
rm:是否删除普通空文件 "/tmp/aminglinux/222/aaa/1.txt"?y
rm:是否删除目录 "/tmp/aminglinux/222/aaa"?y
rm:是否删除目录 "/tmp/aminglinux/222/"?y
[root@aminglinux-01 ~]# tree /tmp/aminglinux/
/tmp/aminglinux/
└── 111
    └── 222
        └── 333

3 directories, 0 files
[root@aminglinux-01 ~]# 

可以看到rm 是不能直接删有文件的目录的。但是加上-r指令,就可以可以全部删除啦。

可以看到文件1.txt也是被直接删除了。

如果加上-f命令就会强制性删除,不会问是否删除文件,这样如果文件夹或文件过多一直问下去非常麻烦。

  • 总结

    • rm 只删除目录里面的文件

    • rm -r删除所有目录以及文件

    • rm -f强制删除文件,不提示是否删除

    • rm -v显示删除过程

    • rm -rfv 指令可以叠加使用,效果叠加。

彩蛋

touch命令

用法:touch+目录+想要创建的文件
创建空文件命令

history命令

查看历史输入命令记录

!命令

用法:!+命令
感叹号加一个命令的意思是这个命令在命令历史里最近的一次执行的内容。