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]#
######################################################################################################