Linux 基本目录操作
路径
根据文件名写法不同,可以分为绝对路径(absolute)和相对路径(relative):
-
绝对路径
由根目录开始写起的文件或目录名称,定义了在虚拟目录结构中该文件的确切位置。例如
/home/base/.bashrc
。 -
相对路径
基于目前位置的路径写法。例如
./base/.bashrc
或../../home/base/
等。
Linux 中有些比较特殊的目录表示符号如下表:
符号 | 意义 |
---|---|
. | 此层目录 |
… | 上一层目录 |
- | 前一个工作目录 |
~ | 目前用户身份所在的主文件夹 |
~account | 代表 account 这个用户的主文件夹 |
显示当前目录
使用 pwd
命令(Print Working Directory 的缩写)显示目前所在目录。
如显示当前路径:
[root@101c7 init.d]$ pwd
/etc/init.d
追踪链接文件显示实际路径加 -P
参数:
[root@101c7 init.d]$ cd /var/mail ; pwd
/var/mail
[root@101c7 mail]$ pwd -P
/var/spool/mail
切换目录
切换目录使用 cd
命令(change directory 的缩写)。
例如进入到用户 abc 主目录下:
[root@101c7 ~]$ cd ~abc
使用绝对路径写法进入到 /etc/fonts/
目录中:
[root@101c7 ~]$ cd /etc/fonts/
回退到上个目录:
[root@101c7 ~]$ cd -
/etc/fonts
使用相对路径写法进入到上级目录下的 init.d 目录:
[root@101c7 fonts]$ cd ../init.d/
不接参数直接进入当前用户的主目录:
[root@server1 ~]$ cd ; pwd
/root
新建目录
使用 mkdir
命令(make directory 的简写)来建立目录。
如建立一个名为 test1 的目录:
[root@101c7 ~]$ mkdir test1
可以用 -p 参数建立嵌套目录,比如建立 test2 文件夹后,在其下建立 test3 文件夹:
[root@101c7 ~]$ mkdir -p test2/test3 ; ll test2
total 0
drwxr-xr-x. 2 root root 6 Sep 9 04:19 test3
可以同时创建多个目录,目录名之间用空格分开。如一次建立 a1、b2、c3 三个文件夹:
[root@101c7 ~]$ mkdir a1 b2 c3 ; ll
total 3
drwxr-xr-x. 2 root root 6 Sep 9 04:21 a1
drwxr-xr-x. 2 root root 6 Sep 9 04:21 b2
drwxr-xr-x. 2 root root 6 Sep 9 04:21 c3
新建目录默认权限是 755,可以用 -m
参数在创建目录时自定义权限,比如建立权限为 777 的文件夹 decay:
[root@101c7 a1]$ mkdir -m 777 decay ; ll
total 0
drwxrwxrwx. 2 root root 6 Sep 9 04:23 decay
删除空目录
使用 rmdir
只能删除空目录。例如同时删除空目录 b2、c3:
[root@101c7 ~]$ rmdir b2 c3
可以加入 -p
来递归删除多级空目录。例如删除 decay 目录下面的空文件夹 cc,再删除 decay 目录:
[root@101c7 a1]$ ll
total 0
drwxrwxrwx. 3 root root 16 Sep 9 04:31 decay
[root@101c7 a1]$ rmdir -p decay/cc/ ; ll
total 0
查询目录大小
使用 du
可以查询到文件或目录所占大小。列出当前目录下面所有文件与目录大小:
[root@101c7 ext333]$ du -ha
102K ./100K2
21M ./1.copy
21M ./lost+found/1.copy
21M ./lost+found
2.0K ./a.cfg
21M ./1.iso
2.0K ./users/jill.txt
4.0K ./users
102K ./100K
61M .
最末一行显示整个文件夹大小为 61MB。
只统计当前目录下文件和文件夹(不列出文件夹下文件)大小,不包括隐藏文件:
[root@101c7 ext333]$ du -sh *
102K ./100K
102K ./100K2
21M ./1.copy
21M ./1.iso
2.0K ./a.cfg
21M ./lost+found
4.0K ./users
统计包含隐藏文件和文件夹大小:
[root@k8s-250 ~]$ du -h --max-depth=1
0 ./.pki
16M ./.kube
16K ./.ssh
0 ./.git-credential-cache
8.0K ./.docker
124K ./.mizu
40K ./.cache
1.7G ./1
1.7G .