文章作者: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
参考文献:
- Linux命令行与shell脚本编程大全(第三版)