程序员

ls命令介绍

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

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

1. ls

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

# 命令形式: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参数在目录后面加了/,以便区分文件和目录,在可执行文件后面加了*,以便区分系统中可以运行的文件。

# 命令形式:ls -F

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

3. ls -a

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

# 命令形式:ls -a

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

4. ls -R

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

# 命令形式: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参数是在显示文件的同时,加上文件的附加信息。每行是一个文件及其相关信息

# 命令形式: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还支持定义过滤器。通过过滤器可以决定显示哪些文件或目录。过滤器就是一个简单的文本匹配字符串。过滤器支持通配符,?代表一个字符,*代表零个或多个字符。当匹配目录是会显示目录下的内容。
除了? *之外,还支持[ ]

# 命令形式: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

参考文献:

  1. Linux命令行与shell脚本编程大全(第三版)