简明Linux命令行笔记:ls
显示一个或多个文件的相关信息。
ls [options] [file-list]
参数
默认情况下,ls按照文件名的字母顺序列出文件的信息,file-list可以是任意文件或目录
当file-list包含多个目录时,ls将显示目录的名称,不显示子目录和子文件
当file-list为普通文件时,ls则显示该文件的相关信息
选项
-a 显示所有文件名列表,包括隐藏文件(文件名以句点开始)
-A 与-a类似,但不列出 . 和 ..目录项
-l 列出每个文件的更多信息
-m 显示用逗号分割的文件名,文件列表的宽度与屏幕的宽度相同
-h 从K(千字节)、M(兆字节)、和G(千兆字节)中选择合适的单位显示文件的大小
-r 以相反的顺序列出目录层次结构
-R 递归列出子目录的内容
-t 按最后一次修改时间的顺序显示文件
-u 按最后一次访问时间的顺序显示文件
-x 按行显示文件列表(默认情况下,按列显示)
-X 按文件扩展名的顺序显示文件,没有扩展名的文件首先被列出
-1 一行显示一个文件
-d 只显示目录名称
-F 该选项在每个目录后显示斜杠(/);在每个可执行文件后显示星号(*);在每个符号链接后显示符号@
示例
ls
$ ls a.out Demo1.java hello.c pink.cpp test.txt work bin Demo.java install.sh su.sh txt
按照字母顺序列出文件名,垂直排列
ls -x
$ ls -x a.out bin Demo1.java Demo.java hello.c install.sh pink.cpp su.sh test.txt txt work
按照字母顺序列出文件名,水平排列
ls -F
$ ls -F a.out* Demo1.java hello.c pink.cpp test.txt work/ bin/ Demo.java install.sh* su.sh* txt@
目录后显示斜杠(/),可执行文件后显示星号(*),符号链接后显示@
ls -l
$ ls -l 总用量 8 drwxrwxr-x 2 siu siu 4096 1月 7 20:00 bin -rwxrwxr-x 1 siu siu 0 1月 7 20:00 install.sh -rw-rw-r-- 1 siu siu 0 1月 7 20:06 pink.cpp -rw-rw-r-- 1 siu siu 0 1月 7 20:01 test.txt lrwxrwxrwx 1 siu siu 8 1月 7 20:01 txt -> test.txt drwxrwxr-x 2 siu siu 4096 1月 7 20:02 work
使用长列表方式列出文件名,也就是详细信息
ls -lh
$ ls -lh 总用量 57M -rw------- 1 siu siu 326K 12月 25 16:50 iArtWork.zip -rw------- 1 siu siu 54M 12月 31 22:41 jtregex3_jb51.7z -rw------- 1 siu siu 2.9M 1月 4 21:10 MBoo.zip
使用合适单位显示文件大小,此处我特意捉了几个大文件,看总用量 57M
ls -a
$ ls -a . .. .AwtDemo.java.swp bin install.sh pink.cpp test.txt txt work
列出所有文件,包括隐藏文件,其中.代表当前目录 ..代表上级目录(Linux中就这样的,可以不理)
ls -al
$ ls -al 总用量 28 drwxr-xr-x 4 siu siu 4096 1月 7 20:16 . drwxr-xr-x 51 siu siu 4096 1月 7 14:09 .. -rw------- 1 siu siu 12288 12月 12 14:22 .AwtDemo.java.swp drwxrwxr-x 2 siu siu 4096 1月 7 20:00 bin -rwxrwxr-x 1 siu siu 0 1月 7 20:00 install.sh -rw-rw-r-- 1 siu siu 0 1月 7 20:06 pink.cpp -rw-rw-r-- 1 siu siu 0 1月 7 20:01 test.txt lrwxrwxrwx 1 siu siu 8 1月 7 20:01 txt -> test.txt drwxrwxr-x 2 siu siu 4096 1月 7 20:02 work
使用长列表的方式列出所有文件
ls -ral
$ ls -ral 总用量 28 drwxrwxr-x 2 siu siu 4096 1月 7 20:02 work lrwxrwxrwx 1 siu siu 8 1月 7 20:01 txt -> test.txt -rw-rw-r-- 1 siu siu 0 1月 7 20:01 test.txt -rw-rw-r-- 1 siu siu 0 1月 7 20:06 pink.cpp -rwxrwxr-x 1 siu siu 0 1月 7 20:00 install.sh drwxrwxr-x 2 siu siu 4096 1月 7 20:00 bin -rw------- 1 siu siu 12288 12月 12 14:22 .AwtDemo.java.swp drwxr-xr-x 51 siu siu 4096 1月 7 14:09 .. drwxr-xr-x 4 siu siu 4096 1月 7 20:16 .
使用长列表的方式列出所有文件,但字母逆序
ls -tl
$ ls -tl 总用量 12 -rw-rw-r-- 1 siu siu 5 1月 7 20:27 demo.c drwxrwxr-x 2 siu siu 4096 1月 7 20:02 work lrwxrwxrwx 1 siu siu 8 1月 7 20:01 txt -> test.txt -rw-rw-r-- 1 siu siu 0 1月 7 20:01 test.txt -rwxrwxr-x 1 siu siu 0 1月 7 20:00 install.sh drwxrwxr-x 2 siu siu 4096 1月 7 20:00 bin
按照文件修改时间排序,最近修改的文件信息在列表最顶部
ls -rtl
$ ls -rtl 总用量 12 drwxrwxr-x 2 siu siu 4096 1月 7 20:00 bin -rwxrwxr-x 1 siu siu 0 1月 7 20:00 install.sh -rw-rw-r-- 1 siu siu 0 1月 7 20:01 test.txt lrwxrwxrwx 1 siu siu 8 1月 7 20:01 txt -> test.txt drwxrwxr-x 2 siu siu 4096 1月 7 20:02 work -rw-rw-r-- 1 siu siu 5 1月 7 20:27 demo.c
按照文件修改时间排序,最近修改的文件信息在列表最底部
ls 目录
$ ls bin a.txt b.txt c.txt
列出目录中内容,此处bin是一个目录
ls -dl 目录
$ ls -dl bin drwxrwxr-x 2 siu siu 4096 1月 7 20:41 bin
用长列表的方式列出bin目录的详细信息
ls -R 目录
$ ls -R bin bin: a.txt b.txt c.txt dir bin/dir: d.txt e.txt
递归列出bin目录下的所有文件
ls -l t*
$ ls -l t* -rw-rw-r-- 1 siu siu 0 1月 7 20:01 test.txt lrwxrwxrwx 1 siu siu 8 1月 7 20:01 txt -> test.txt
列出所有t开头的文件
Tips
1.参数可以分开使用,也可以连在一起使用。ls -al 和 ls -a -l效果是一样的
2.ls后面可接各种通配符,各种目录,各种普通文件,各种设备文件……靠,各种凌乱……