教你Linux系统目录常用操作命令
扫描二维码
随时随地手机看文章
在上一篇文章中,我们介绍了Linux操作系统的主目录,每个人都知道每个目录的特定用途。 在不同目录和信息请求之间切换的最常见方法是在Linux操作系统上。 今天,我们将介绍Linux上目录操作常用的命令。
其实目录也是一个文件,只不过是一种特殊的文件,它的唯一功能是用来保存文件及其相关信息。所有的文件,包括普通文件、设备文件和目录文件,都会被保存到目录中。为了更加容易的理解相关命令,我们先介绍一下目录相关的概念。
目录相关的概念
主目录
我们知道Linux是一个多用户的操作系统,当我们以某个用户登录操作系统时就会自动的处于某个目录下面,我们称这个目录为主目录。对于普通用户来说,当创建用户的时候通常会在/home目录下面创建一个与用户名同名的子目录,该目录就是该用户的主目录。
例如我们已itworld123用户登录系统时,此时我们会位于/home/itworld123目录下面。
工作目录
当我们登录到Linux系统时,我们总是处于某个目录下面。我们当前所处于的目录就是工作目录。我们可以通过cd命令实现工作目录的切换。
目录的绝对路径和相对路径
Linux的目录有清晰的层次结构,‘/’代表根目录,所有的目录都位于/下面;在Linux文件系统中目录中会有子目录,子目录中又有子目录,最终会形成一个目录树,如图所示。
由子目录名称和/分隔符构成的一个合法的字符串称为一个路径,它用于描述文件的位置。也就是我们可以通过路径找到文件,就好像通过一条路可以到某个地方一样。下面是路径的两个例子:
home/itworld123/home/itworld123
如果我们仔细关注一下上面两个例子,其实上面两个路径是不同的。其中后面的路径是以/开头的,我们称为绝对路径,而不已/开头的称为相对路径。
点号(.)
在Linux操作系统中除了常见的字符串目录外,还有一种特殊的目录名称。这种目录名称是以点号(.)构成的。其中一个点号(.)表示当前目录,两个点号(..)表示上级目录(父目录)。这种目录主要是为了方便目录的切换,提高工作效率。
目录相关的操作
所有数据的操作无外乎增删改查,目录也是数据。因此,对于目录的操作也是增删改查,所谓增就是创建目录;所谓删就是删除目录;所谓改就是修改目录,比如重命名;所谓查就是查询目录及目录内的内容等。
创建目录
创建目录的命令为mkdir,它是make directory的简写。我们可以通过该命令后面跟一个目录名称的方式在当前目录创建一个子目录,例如:
$mkdir itworld123
这个目录名称其实可以是一个路径,可以是相对路径或者绝对路径。下面是一个相对路径的例子。
$mkdir itworld123/sunnyzhang
当然,这个路径必须是一个合法路径,这样文件系统会自动搜索,并且在最后的目录下面创建子目录。当然,这个路径也可以是绝对路径,例如:
$mkdir /tmp/itworld123/sunnyzhang
上述命令会在目录itworld123中创建一个子目录sunnyzhang。
前面说了,要求后面的路径必须是合法路径。合法路径是什么意思呢?所谓合法路径是可访问的路径。对于相对路径和绝对路径有不同的解释。相对路径来说,是指相对工作目录来说心目录前面的父目录在工作目录是必须存在。而对于绝对目录来说是指新目录前面的所有父级目录是必须存在的。
如果创建子目录是前面的目录是不合法的,那么就会创建失败。但有时候我们希望创建一串父子目录,那么此时这里就存在非法路径的问题。创建就会失败。例如下面,如果itworld123不存在,那么该命令就会失败。
$mkdir itworld123/sunnyzhang
mkdir给我们提供了一个选项-p,通过该选项就可以自动创建不存在的上级目录。如下,如果itworld123不存在,那么mkdir会先创建该目录,然后创建sunnyzhang。
$mkdir -p itworld123/sunnyzhang
删除目录
有创建就有删除,很多情况下都有可能需要删除目录。比如创建错误的名称,或者不在使用的目录。我们可以使用 rmdir命令来删除目录,例如:
$rmdir itworld123
使用 rmdir命令可以同时删除多个目录:
$rmdir dirname1 dirname2 dirname3
但是需要注意的是,使用rmdir删除目录的时候必须保证该目录是空的,否则会报错。那么我们如何删除一个非空的目录呢?这就用到了rm命令,它可以删除该目录及其内的所有内容。
改变所在目录(切换工作目录)
可以使用 cd命令来改变当前所在目录,进入任何有权限的目录,例如下面的例子:
$cd path/name
path/name是一个路径,可以为相对路径,也可以为绝对路径。例如
$cd /usr/local/bin
可以直接进入/usr/local/bin 目录。
除了使用路径名称来实现路径的切换外,Linux提供了一些快速进行切换的方式。比如使用下面的命令可以随时进入主目录:
$cd ~
这里 ~ 就表示主目录。如果你希望进入其他用户的主目录,可以使用下面的命令:
$cd ~username
另外一个快捷方式是实现两个目录之间的快速切换,具体如下:
$cd -
改动目录(重命名和移动)
有的时候我们在给目录起名的时候没起好。此时最简单的方法可能大家会想到删除后重新创建。但是如果目录中已经有很多内容呢?显然直接删除是不合适的,Linux为我们提供了修改目录名称的命令,就是mv(move) 命令,其语法为:
$mv olddir newdir
该命令不仅仅可以重命名目录,还可以将一个目录整体搬到其它地方。例如下面的例子将会把 mydir 目录重搬到 newdir目录下面,成为其子目录:
$mv mydir yourdir/
查询目录
最后就是查询了,在Linux系统当中,我们可以通过ls命令查询目录中的内容,也就是子目录和文件。ls命令的语法格式为:
$ls path/name
这里path/name可以是绝对目录或者相对目录。如果path/name为空,也就是只有ls命令,则表示为工作目录。
ls命令是Linux下最为常用的命令之一,其功能也非常强大。前面我们了解了选项的概念,通过选项可以使得命令有更加强大的功能。ls有很多选项,其中比较常用的选项有如下几个:
-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来-d :仅列出目录本身,而不是列出目录内的文件数据-l :长数据串列出,包含文件的属性与权限等等数据;-i : 显示文件或者目录的inode id