ls是linux系统中经常使用的基础命令之一用于查看文件或目录也可以使用-l,-i,-d等选项查看属性inode等信息。

1.命令格式

ls  [参数选项]  [目录或文件]

2.命令功能

列出目标目录中所有的子目录和文件

3.命令参数及使用实例

-a  –all 列出目录下的所有文件包括以 . 开头的隐含文件

[root@dong data]# ls -a

.  ..  a.txt  b.txt  c.txt  dong  you

[root@dong data]# 

②-d  –directory 将目录象文件一样显示而不是显示其下的文件

[root@dong data]# ls -d

.

[root@dong data]# 

③–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是'never'、'always'或'auto'其中之一

④-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)配合-l使用

[root@dong data]# ls -lh

total 8.0K

-rw-r--r--. 1 root root    0 Nov 13 03:44 a.txt

-rw-r--r--. 1 root root    0 Nov 13 03:45 b.txt

-rw-r--r--. 1 root root    0 Nov 13 03:45 c.txt

drwxr-xr-x. 2 root root 4.0K Nov 13 03:49 dong

drwxr-xr-x. 2 root root 4.0K Nov 13 03:49 you

[root@dong data]# 

⑤–si 类似 -h,但文件大小取 1000 的次方而不是 1024

[root@dong data]# ls -ls

total 8

0 -rw-r--r--. 1 root root    0 Nov 13 03:44 a.txt

0 -rw-r--r--. 1 root root    0 Nov 13 03:45 b.txt

0 -rw-r--r--. 1 root root    0 Nov 13 03:45 c.txt

4 drwxr-xr-x. 2 root root 4096 Nov 13 03:49 dong

4 drwxr-xr-x. 2 root root 4096 Nov 13 03:49 you

[root@dong data]# 

⑥-i, –inode 印出每个文件的 inode 号

[root@dong data]# ls -i

523268 a.txt  523269 b.txt  523270 c.txt  523272 dong  523271 you

[root@dong data]# 

⑦-k 即 –block-size=1K,以 k 字节的形式表示文件的大小。

[root@dong data]# ls -lk

total 8

-rw-r--r--. 1 root root 0 Nov 13 03:44 a.txt

-rw-r--r--. 1 root root 0 Nov 13 03:45 b.txt

-rw-r--r--. 1 root root 0 Nov 13 03:45 c.txt

drwxr-xr-x. 2 root root 4 Nov 13 03:49 dong

drwxr-xr-x. 2 root root 4 Nov 13 03:49 you

[root@dong data]# 

⑧-m 所有项目以逗号分隔并填满整行行宽

[root@dong data]# ls -m

a.txt, b.txt, c.txt, dong, you

[root@dong data]# 

⑨-r, –reverse 依相反次序排列

[root@dong data]# ls -lr

total 8

drwxr-xr-x. 2 root root 4096 Nov 13 03:49 you

drwxr-xr-x. 2 root root 4096 Nov 13 03:49 dong

-rw-r--r--. 1 root root    0 Nov 13 03:45 c.txt

-rw-r--r--. 1 root root    0 Nov 13 03:45 b.txt

-rw-r--r--. 1 root root    0 Nov 13 03:44 a.txt

[root@dong data]# 

⑩-R, –recursive 同时列出所有子目录层

[root@dong data]# ls -R

.:

a.txt  b.txt  c.txt  dong  you

 

./dong:

 

./you:

[root@dong data]# 

-S 根据文件大小排序

[root@dong data]# ls -lS

total 20

drwxr-xr-x. 2 root root 4096 Nov 13 03:49 dong

drwxr-xr-x. 2 root root 4096 Nov 13 04:08 you

-rw-r--r--. 1 root root   81 Nov 13 04:09 c.txt

-rw-r--r--. 1 root root   31 Nov 13 04:09 b.txt

-rw-r--r--. 1 root root   15 Nov 13 04:09 a.txt

[root@dong data]# 

-t 以文件修改时间排序

[root@dong data]# ls -lt

total 20

-rw-r--r--. 1 root root   81 Nov 13 04:09 c.txt

-rw-r--r--. 1 root root   31 Nov 13 04:09 b.txt

-rw-r--r--. 1 root root   15 Nov 13 04:09 a.txt

drwxr-xr-x. 2 root root 4096 Nov 13 04:08 you

drwxr-xr-x. 2 root root 4096 Nov 13 03:49 dong

[root@dong data]# ls -t

c.txt  b.txt  a.txt  you  dong

[root@dong data]# 

-u 配合 -lt:显示访问时间而且依访问时间排序

配合 -l:显示访问时间但根据名称排序

否则根据访问时间排序

[root@dong data]# ls -u

a.txt  c.txt  b.txt  dong  you

[root@dong data]# 

[root@dong data]# ls -ul

total 20

-rw-r--r--. 1 root root   15 Nov 13 04:12 a.txt

-rw-r--r--. 1 root root   31 Nov 13 04:09 b.txt

-rw-r--r--. 1 root root   81 Nov 13 04:09 c.txt

drwxr-xr-x. 2 root root 4096 Nov 13 04:07 dong

drwxr-xr-x. 2 root root 4096 Nov 13 04:07 you

[root@dong data]# 

-X 根据扩展名排序

[root@dong data]# ls -lX

total 20

drwxr-xr-x. 2 root root 4096 Nov 13 03:49 dong

drwxr-xr-x. 2 root root 4096 Nov 13 04:08 you

-rw-r--r--. 1 root root    0 Nov 13 04:13 pbc.bmp

-rw-r--r--. 1 root root   15 Nov 13 04:09 a.txt

-rw-r--r--. 1 root root   31 Nov 13 04:09 b.txt

-rw-r--r--. 1 root root   81 Nov 13 04:09 c.txt

[root@dong data]# 

   4.命令高级应用

例1 列出/data文件夹下所有文件和目录的详细资料

cd /data;ls -lR 

[root@dong ~]# cd /data;ls -lR 

.:

total 20

-rw-r--r--. 1 root root   15 Nov 13 04:09 a.txt

-rw-r--r--. 1 root root   31 Nov 13 04:09 b.txt

-rw-r--r--. 1 root root   81 Nov 13 04:09 c.txt

drwxr-xr-x. 2 root root 4096 Nov 13 03:49 dong

-rw-r--r--. 1 root root    0 Nov 13 04:13 pbc.bmp

drwxr-xr-x. 2 root root 4096 Nov 13 04:08 you

 

./dong:

total 0

 

./you:

total 0

-rw-r--r--. 1 root root 0 Nov 13 04:08 lol.txt

[root@dong data]# 

例2 列出当前目录中所有以“t”开头的目录的详细内容可以使用如下命令

ls -l a*

[root@dong data]# ls -l a*

-rw-r--r--. 1 root root 15 Nov 13 04:09 a.txt

[root@dong data]# 

例3 只列出文件下的子目录

ls -F /data |grep /$ 

[root@dong data]# ls -F /data |grep /$ 

dong/

you/

[root@dong data]# 

例4列出 /data 文件下面的子目录详细情况

ls -l /data|grep 'd'

[root@dong data]# ls -l /data|grep 'd'

drwxr-xr-x. 2 root root 4096 Nov 13 03:49 dong

drwxr-xr-x. 2 root root 4096 Nov 13 04:08 you

[root@dong data]# 

例5列出目前工作目录下所有名称是a 开头的档案愈新的排愈后面

ls -ltr a*

[[root@dong data]# ls -ltr a*

-rw-r--r--. 1 root root 15 Nov 13 04:09 a.txt

[root@dong data]# 

例6列出当前目录下的所有文件包括隐藏文件的绝对路径 对目录不做递归

find $PWD -maxdepth 1 | xargs ls -ld

[root@dong data]# find $PWD -maxdepth 1 | xargs ls -ld

drwxr-xr-x. 4 root root 4096 Nov 13 04:13 /data

-rw-r--r--. 1 root root   15 Nov 13 04:09 /data/a.txt

-rw-r--r--. 1 root root   31 Nov 13 04:09 /data/b.txt

-rw-r--r--. 1 root root   81 Nov 13 04:09 /data/c.txt

drwxr-xr-x. 2 root root 4096 Nov 13 03:49 /data/dong

-rw-r--r--. 1 root root    0 Nov 13 04:13 /data/pbc.bmp

drwxr-xr-x. 2 root root 4096 Nov 13 04:08 /data/you

[root@dong data]# 

######################################################################################################