2-文件导航系统
文章目录
列出文件和文件夹
在操作和使用目录中的文件之前,首先得直到该目录中有哪些文件,所以我们需要列出目录中得文件和子目录,此命令便是 ls
。输入 ls
会列出当前目录得内容,如下图:
列出其他文件夹的内容
有时候我们不必进入到某个文件夹也可以查看那个文件夹的内容,假设现在我位于/home/pi目录中,但是要查看Documents目录的内容,可以输入下面的命令:
上面的例子中的 pwd
命令是查看当前目录的逻辑位置(相当于 pwd -L
), ls
命令后跟了一个基于相对路径的目录,所以显示的就是当前目录下的Documents目录下的内容。此外,也可以使用绝对路径,如下:
此外,Linux下的 ~
代表当前用户的主目录,例如我当前登录的是pi用户,我的主目录是/home/pi,所以此时 ~
相当于这个目录。如下:
使用通配符列出文件夹的内容
使用 ls
命令时可以配合通配符来使用,下面是一个实例,其中使用 -d
选项是为了避免显示匹配的目录中的内容:
查看子文件加中的文件列表
使用 ls
命令的 -R
选项可以递归的显示目录中的子目录中的内容,如下所示,当前目录中有个tmp目录,tmp目录中又有一个tmp目录,全部都递归的显示出来了:
以逗号分隔列表显示内容
ls
的标准显示方式就是内容之间以多个空格分隔,如果不喜欢此种方式,可以使用 -m
选项来用逗号实现内容的分隔:
以单独一列显示内容列表
ls
命令默认以字母顺序列出目录中的内容,每个内容之间以若干空格分隔,如果想以一列来显示目录中的内容,可以使用 -1
选项(数字1),如下:
查看隐藏文件和文件夹
以圆点 .
开头的文件或者文件夹属于隐藏文件或文件夹,如果想显示它们,可以配合 ls
命令的 -a
选项,此外,每个目录都始终有两个子目录: .
和 ..
,前者代表当前目录,后者代表当前目录的父目录,这两个目录不可以删除。测试如下:
如果不想显示 .
和 ..
两个目录,可以使用 -A
选项,如下:
直观显示文件的类型
前面利用 ls
显示目录中的内容,除了bash自带的颜色显示区分内容是文件还是文件夹外,此外没有任何提示,为了更好的区分各个文件的内容,可以给 ls
命令加上 -F
选项,如下:
可以看到,文件夹的结尾会有 /
符号,可执行文件结尾会有 *
符号,普通文件结尾会没有任何符号。一些结尾附加符号的含义如下表:
符号 | 含义 |
---|---|
* | 可执行文件 |
/ | 目录 |
@ | 符号链接文件 |
| | FIFO(命名管道) |
= | 套接字 |
列出权限、所有者以及其他信息
为了获取文件或者文件夹的详细信息,可以使用 ls
命令的 -l
选项(小写的字母l),如下:
上面的每一行都是一个文件(文件夹也是一个文件),从左边开始分别是:文件的类型和权限、文件的硬链接数或者子目录数、文件所有者、文件所属用户组、文件大小(单位byte)、文件最后修改月份、文件最后修改日期,文件最后修改时间。其中最左边的那项的第一个字符的解释如下表:
字符 | 含义 |
---|---|
- | 普通文件或者可执行文件 |
d | 目录 |
l | 符号链接 |
s | 套接字 |
b | 块设备 |
c | 字符设备 |
p | 命令管道(AKA FIFO) |
此外,关于目录的权限的一些常见问题如下:
- 一个目录如果没有x权限,则不能cd进入该目录,也不能执行该目录下的文件,不能查看该目录下的文件的内容。
- 一个目录如果没有r权限,则不能列出该目录下的各个文件名。
- 一个目录至少要有x和w权限才能在目录中创建文件。
- 对于目录内而言,涉及到文件内容的,都需要x权限。
以倒序列出文件内容
ls
命令默认按照字母的顺序显示目录的内容,此时可以加上 -r
选项来倒序显示(选项 -R
是递归显示),如下:
按日期和时间排序内容
ls
命令默认按照字母的顺序显示内容,如果想按照日期和时间对目录的内容进行排序,则可以使用 -t
选项,组合 -r
可以时间倒序显示,如下:
按照文件大小排序内容
使用 ls
命令的 -S
选项可以按照文件的大小对内容进行排序,如下:
用K、M和G表示文件的大小
平常我们使用 ls
命令的 -l
选项时,显示的文件的大小是以字节为单位的很长一串数字,不易于人们阅读,所以可以使用 -h
选项来格式化大小,使其带单位显示(如果仍然没有单位则表示单位为字节),如下:
显示当前目录的路径
前面已经提到过了,输入命令 pwd
就可以显示当前路径的逻辑位置,等同于输入 pwd -L
,而如果想显示当前目录的物理位置,则需要输入 pwd -P
,如下:
可以看到,进入软链接file后,输入 pwd
显示的是一个逻辑位置(并不是这个软链接指向的真实物理位置),所以可以输入 pwd -P
显示真实的物理位置。
文章作者 P1n93r
上次更新 2019-11-15