ls命令介绍

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

在Linux系统中,要想知道系统中有哪些文件,可以使用列表命令——ls。下面是ls命令的一些用法。

1. ls

ls命令的最基本形式会显示当前目录下的文件和目录,ls命令输出的列表是按字母排序的,并且是按列排序而不是行排序。

1
2
3
4
5
6
# 命令形式:ls

# 例子
$ ls
01_intro.pdf Effective Java 第二版 中文版.pdf HTTP权威指南.pdf spring-boot-reference-guide-zh.pdf spring-framework-reference.pdf
DeepLearningBook.pdf Effective_Java_2nd_Edition.pdf code-complete-2nd-edition-v413hav.pdf spring-boot-reference.pdf

2. ls -F

-F参数的ls命令可以区分文件和目录,-F参数在目录后面加了/,以便区分文件和目录,在可执行文件后面加了*,以便区分系统中可以运行的文件。

1
2
3
4
5
# 命令形式:ls -F

# 例子
$ ls -F
pom.xml src/ target/

3. ls -a

Linux经常使用隐藏文件来保存配置信息,隐藏文件的文件名通常以.开头。ls命令默认情况下是不显示隐藏文件的,-a参数就是将隐藏文件一起显示出来。

1
2
3
4
5
# 命令形式:ls -a

# 例子
$ ls -a
. .. .DS_Store pom.xml src target

4. ls -R

-R参数叫做递归选项,它会列出当前目录下包含的子目录中的文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 命令形式:ls -R

# 例子
$ ls -R
pom.xml src target

./src:
main

./src/main:
java

./src/main/java:
Example.java

./target:
classes maven-archiver myproject-0.0.1-SNAPSHOT.jar
generated-sources maven-status myproject-0.0.1-SNAPSHOT.jar.original

./target/classes:
Example.class

./target/generated-sources:
annotations

./target/generated-sources/annotations:

./target/maven-archiver:
pom.properties

./target/maven-status:
maven-compiler-plugin

./target/maven-status/maven-compiler-plugin:
compile

./target/maven-status/maven-compiler-plugin/compile:
default-compile

./target/maven-status/maven-compiler-plugin/compile/default-compile:
createdFiles.lst inputFiles.lst

备注: ls命令的参数可以分开输入,例如ls -R -F,也可以合并,例如ls -FR

5. ls -l

-l参数是在显示文件的同时,加上文件的附加信息。每行是一个文件及其相关信息

1
2
3
4
5
6
7
8
# 命令形式:ls -l

# 例子
$ ls -l
total 8
-rw-r--r-- 1 *** staff 1837 10 14 20:26 pom.xml
drwxr-xr-x 4 *** staff 136 10 14 13:07 src
drwxr-xr-x 9 *** staff 306 10 14 20:33 target

每行信息解释,按顺序,以第一行为例:

  • 文件类型,目录为d,文件为-,字符型文件为c,块设备为b。第一行为-

  • 文件的权限,读写可执行等权限。第一行为rw-r--r--

  • 文件的硬盘链接综述。第一行为1

  • 文件属主(属于谁)的用户名。第一行为***

  • 文件属组(属于哪个组)的组名。第一行为staff

  • 文件的大小,以字节为单位。第一行为1837

  • 文件的最后一次修改时间。第一行为10 14 20:26

  • 文件名或目录名。第一行为pom.xml

6. ls文件过滤

ls还支持定义过滤器。通过过滤器可以决定显示哪些文件或目录。过滤器就是一个简单的文本匹配字符串。过滤器支持通配符,?代表一个字符,*代表零个或多个字符。当匹配目录是会显示目录下的内容。
除了? *之外,还支持[ ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 命令形式:ls 过滤器

# 例子
$ ls *om.xml
pom.xml

$ ls ?om.xml
pom.xml

# 匹配字符a,p
$ ls [ap]om.xml
pom.xml

# 匹配字符a-p,即a,b,...,p
$ ls [a-p]om.xml
pom.xml

# 匹配非p开头的文件
$ ls [!p]om.xml
ls: [!p]om.xml: No such file or directory

# 匹配非a开头的文件
$ ls [!a]om.xml
pom.xml

7. ls -d

-d参数只列出目录本身的信息,不列出其中的内容,常跟其它命令一起使用。

8. ls -i

Linux文件系统中,内核给文件系统中的每个对象都分配了一个编号,这个编号叫做inode编号,是标识文件或目录的唯一数字。-i参数可以查看这个数字。

1
2
3
4
5
# 命令形式:ls -i

# 例子
$ ls -i
6558451 a 6559485 b 6557711 test

参考文献:

  1. Linux命令行与shell脚本编程大全(第三版)
如果有收获,可以请我喝杯咖啡!