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:清空屏幕