本文主要介绍Linux系统中路径的基本概念以及对目录的基础操作。
根目录的概念
在Windows操作系统中,是由盘符开始描述路径,如:C:\Programs\abc\ 或者 D:\game\abc\。
在Linux操作系统中,则是以 目录树 的形式展现,所有的文件及目录都是从 根目录/ 开始的,如/home,/etc 等,即便是有多块硬盘挂载或有不同的分区,也要从 根目录/ 开始。
相对路径与绝对路径
绝对路径:路径的写法“一定是由根目录/开始”,写法比较麻烦,但正确率高且出错易于排查。如:/home/test/。
相对路径:路径的写法“不是由根目录/开始”,写法比较简单,能够通过较短的内容指定对应目录。如:test/abc
特殊目录的表示符号
. # 代表此层目录
.. # 代表上一层目录
- # 代表前一个工作目录
~ # 代表当前用户的家目录
~abc # 代表 abc 这个用户的家目录(注意:abc 此处表示账号名称)
示例如下:
# 输入命令
ls -la
# 可能会返回以下内容,其中包括 . 及 ..
drwxr-xr-x 3 root root 4096 11月 30 12:41 .
drwxr-xr-x 6 root root 4096 11月 29 10:36 ..
drwxrwxrwx 2 root root 4096 11月 30 11:46 test_dir
-rw-r--r-- 1 root root 7 11月 29 10:41 test_file.txt
所有的目录都会存在2个目录,分别是
.
与..
,代表此层与上层目录。即便是根目录也会存在这2个目录,只是代表的都是根目录自身。
目录处理命令
cd:切换目录
pwd:显示当前目录
mkdir:建立一个新目录
rmdir:删除一个空目录
切换目录 cd
cd 是 change directory 的缩写,用来切换工作目录的命令。当登录到Linux系统后,每个用户都会在自己的家目录中,可以用 cd 命令进入到其它目录。
命令格式:
cd [相对路径或绝对路径,或特殊目录的符号]
命令示例:
# 绝对路径写法,切换至指定目录
cd /home/www
# 相对路径写法,从当前目录进入指定目录,指定目录的层级必须为当前目录所包含
# 假设当前目录为 /home,进入当前目录下的子目录www(等同于绝对路径 /home/www)
cd www
# 相对路径写法,回到上级目录后再进入指定目录
# 假设当前目录为 /home/www,表示回到上级目录 /home 后再进入指定目录 test_dir(等同于绝对路径 /home/test_dir)
cd ../test_dir
# 进入当前用户的家目录
cd ~
# 不加任何路径,也表示进入当前用户的家目录
cd
# 进入用户 abc 的家目录
cd ~abc
# 进入前一个工作目录
cd -
显示当前目录 pwd
pwd 是 print working directory 的缩写,用于显示当前工作目录。
命令格式:
pwd
命令示例:
# 输入命令
pwd
# 可能返回,表示当前工作目录为 /home/www
/home/www
建立新目录 mkdir
mkdir 是 make directory 命令的缩写,用于建立目录,需要注意的是,默认情况下,目录只能一层一层建立,想一次建立多个层级目录需要加上 -P 参数。
命令格式:
mkdir [-mp] 目录名称
# -p 直接将目录名称递归建立
# -m 建立目录时同时设置权限
命令示例:
# 在当前工作目录下,建立目录 test
mkdir test
# 在当前工作目录下,连续建立多层级目录
mkdir -p test_a/test_b/test_c
# 建立目录时设置权限
mkdir -m 777 test_dir
# 以绝对路径方式建立目录
mkdir /home/www/test_dir
删除空目录 rmdir
rmdir 是 remove directory 命令的缩写,值得注意的是,rmdir 只能删除空目录,即被删除的目录中不能包含文件或子目录。
命令格式:
rmdir [-p] 目录名称
# -p 按层级的将空目录一并删除
命令示例:
# 在当前工作目录下,删除空目录 test
rmdir test
# 在当前工作目录下,连续删除多层级空目录,将3个空目录同时删除
rmdir -p test_a/test_b/test_c
# 以绝对路径方式删除空目录
rmdir /home/www/test_dir