Linux 目录管理的相关命令

mkdir,rmdir

  • 创建目录mkdir

    • -p:当上级目录不存在时,自动创建上级目录

    • -v:显示创建过程

      $ mkdir -pv /tmp/x/y/z/
      mkdir: created directory ‘/tmp/x’
      mkdir: created directory ‘/tmp/x/y’
      mkdir: created directory ‘/tmp/x/y/z/’
      
    • -m:指定目录的权限

  • 删除内容为空的目录rmdir

    • -p:删除目录后,发现其上级目录也是没有内容了的话,也一并删除

    • -v:显示过程

      $ rmdir -pv /tmp/x/y/z/
      rmdir: removing directory, ‘/tmp/x/y/z/’
      rmdir: removing directory, ‘/tmp/x/y’
      rmdir: removing directory, ‘/tmp/x’
      

问题1:如何创建/tmp/x/y1,/tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b目录?

问题2:如何创建a_c,a_d, b_c, b_d目录

问题3:如何快速重命名文件名为,原来文件名.bak

一,为了解决以上问题,需要使用bash的基础特性之:命令行展开功能。

  • :自动展开为当前用户的家目录。user:展开成user的家目录。
  • {}:里面放以逗号分隔的路径列表,并展开成多个路径。例如/tmp/{a,b},相当于/tmp/a,/tmp/b

问题1的答案:mkdir -p /tmp/x/{y1/{a,b},y2}

$ mkdir -p /tmp/x/{y1/{a,b},y2}
$ tree /tmp/x
/tmp/x
├── y1
│   ├── a
│   └── b
└── y2

问题2的答案:mkdir -p {a,b}_{c,d}

相当于2个多项式相乘。

  • 查看目录tree

    • -L level:指定要显示的层级。

      $ tree /etc/
      $ tree -L 2 /etc/
      

问题3的答案:mv /tmp/{file1,file.bak}

# mv /tmp/{file1,file1.bak}
[root@localhost tmp]# ls file1.bak
file1.bak

二,bash的基础特性之:取得命令执行后的结果。

命令执行完后,我们需要知道命令执行的结果,结果有2种,成功和失败,但是失败的理由各种各样。

bash把执行结果存放在变量【$?】里。

  • 成功:0
  • 失败:1-255

命令执行成功的时候,会有结果返回,如何取得返回的结果呢?使用下面的方式:

  • $(command)
  • `command`

问题3:用当前时间作为目录名,创建目录。

$ mkdir $(date +%H:%M:%S)
$ mkdir `date +%H-%M-%S`

三,bash的基础特性之:快捷键

  • ctrl-a:移动光标到行首
  • ctrl-e:移动光标到行尾
  • ctrl-u:删除行首到光标处的所有字符
  • ctrl-k:删除光标处到行尾的所有字符
  • ctrl-l:清空屏幕

c/c++ 学习互助QQ群:877684253

本人微信:xiaoshitou5854

posted @ 2019-12-15 10:59  小石王  阅读(354)  评论(0编辑  收藏  举报