命令简介
ls(List Files)是 Linux 中最基础且高频使用的命令之一,用于列出目录内容。无论是查看文件、检查权限还是分析磁盘空间,ls 都是不可或缺的工具。
用法
ls命令的语法格式如下
ls [选项] [目录/文件]
#不添加参数时:默认列出当前目录的非隐藏文件
#添加目录路径:显示目标目录内容
#添加文件路径:显示该文件信息(若存在)
ls命令的常用选项及说明如下
命令案例场景
1.基础文件查看
[root@blog ~]# ls -l #ls -l命令等效于部分Linux发行版中的ll别名
drwxr-xr-x. 2 root root 6 5月 29 22:07 下载
drwxr-xr-x. 2 root root 6 5月 29 22:07 桌面
-rw-------. 1 root root 1505 5月 29 21:30 anaconda-ks.cfg
-rw-r--r--. 1 root root 12761628672 6月 14 14:46 rhel-9.6-x86_64-dvd.iso
字段解析
第一列:文件类型(-普通文件,d目录)及权限
第二列:硬链接数
第三列:所有者
第四列:所属组
第五列:文件大小(字节)
第六列:文件的创建日期或者是最近的修改日期
第七列:文件或目录的名称
2.以易读的格式输出文件目录大小
[root@blog ~]# ls -lh
drwxr-xr-x. 2 root root 6 5月 29 22:07 下载
drwxr-xr-x. 2 root root 6 5月 29 22:07 桌面
-rw-------. 1 root root 1.5K 5月 29 21:30 anaconda-ks.cfg
-rw-r--r--. 1 root root 12G 6月 14 14:46 rhel-9.6-x86_64-dvd.iso
#-h参数将字节自动转换为K/M/G单位,提升可读性
3.按时间排序文件
[root@blog ~]# ls -lt #按修改时间倒序(最新在最前)
-rw-r--r--. 1 root root 12761628672 6月 14 14:46 rhel-9.6-x86_64-dvd.iso
drwxr-xr-x. 2 root root 6 5月 29 22:07 下载
drwxr-xr-x. 2 root root 6 5月 29 22:07 桌面
-rw-------. 1 root root 1505 5月 29 21:30 anaconda-ks.cfg
[root@blog ~]# ls -ltr #按修改时间正序(最旧在最前)
-rw-------. 1 root root 1505 5月 29 21:30 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 5月 29 22:07 桌面
drwxr-xr-x. 2 root root 6 5月 29 22:07 下载
-rw-r--r--. 1 root root 12761628672 6月 14 14:46 rhel-9.6-x86_64-dvd.iso
#按修改时间倒序排列,最近修改的文件排在最前,配合-r可实现升序排列
4.查看隐藏文件
[root@blog ~]# ls -la #显示包括.bashrc、.ssh等配置文件在内的所有隐藏文件,和普通文件及目录
总用量 12462572
dr-xr-x---. 14 root root 4096 6月 14 14:44 .
dr-xr-xr-x. 18 root root 235 5月 29 21:25 ..
drwxr-xr-x. 2 root root 6 5月 29 22:07 下载
drwxr-xr-x. 2 root root 6 5月 29 22:07 桌面
-rw-------. 1 root root 1505 5月 29 21:30 anaconda-ks.cfg
-rw-------. 1 root root 102 5月 30 12:03 .bash_history
-rw-r--r--. 1 root root 18 2月 12 22:29 .bash_logout
-rw-r--r--. 1 root root 141 2月 12 22:29 .bash_profile
-rw-r--r--. 1 root root 429 2月 12 22:29 .bashrc
-rw-r--r--. 1 root root 12761628672 6月 14 14:46 rhel-9.6-x86_64-dvd.iso
drwx------. 2 root root 6 5月 29 21:25 .ssh
#解析:.表示当前目录,..表示上级目录
5.磁盘空间分析
[root@blog ~]# ls -lSh #按文件大小降序排列,快速定位大文件/目录
-rw-r--r--. 1 root root 12G 6月 14 14:46 rhel-9.6-x86_64-dvd.iso
-rw-------. 1 root root 1.5K 5月 29 21:30 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 5月 29 22:07 下载
drwxr-xr-x. 2 root root 6 5月 29 22:07 桌面
6.递归目录遍历
[root@blog ~]# ls -lR /etc/NetworkManager/ #递归显示目录及其所有子目录中的文件
总用量 4
drwxr-xr-x. 2 root root 6 3月 3 22:10 conf.d
drwxr-xr-x. 5 root root 57 5月 29 21:25 dispatcher.d
drwxr-xr-x. 2 root root 6 3月 3 22:10 dnsmasq.d
drwxr-xr-x. 2 root root 6 3月 3 22:10 dnsmasq-shared.d
-rw-r--r--. 1 root root 2263 3月 3 22:10 NetworkManager.conf
drwxr-xr-x. 2 root root 33 5月 29 21:30 system-connections
/etc/NetworkManager/conf.d:
/etc/NetworkManager/dispatcher.d:
drwxr-xr-x. 2 root root 6 3月 3 22:10 no-wait.d
drwxr-xr-x. 2 root root 6 3月 3 22:10 pre-down.d
drwxr-xr-x. 2 root root 6 3月 3 22:10 pre-up.d
/etc/NetworkManager/dispatcher.d/no-wait.d:
/etc/NetworkManager/dispatcher.d/pre-down.d:
/etc/NetworkManager/dispatcher.d/pre-up.d:
/etc/NetworkManager/dnsmasq.d:
/etc/NetworkManager/dnsmasq-shared.d:
/etc/NetworkManager/system-connections:
-rw-------. 1 root root 229 5月 29 21:30 ens160.nmconnection
7.使用正则过滤
[root@blog ~]# ls -l *.cfg #仅显示.cfg结尾的文件
-rw-------. 1 root root 1505 5月 29 21:30 anaconda-ks.cfg
[root@blog ~]# ls -l rhel-*.iso #仅显示rhel开头与.iso结尾的文件
-rw-r--r--. 1 root root 12761628672 6月 14 14:46 rhel-9.6-x86_64-dvd.iso
[root@blog ~]# ls [a-c]* #与通配符结合,列出以a/b/c开头的文件
anaconda-ks.cfg
8.显示文件inode号
[root@blog ~]# ls -i #查看文件的inode编号(文件系统的唯一标识)
67478510 anaconda-ks.cfg 69108591 下载 34476647 桌面 69108244 rhel-9.6-x86_64-dvd.iso
注意事项
注意事项
权限限制:若目录无读取权限(如 /root),ls 会报错 Permission denied。需使用sudo提升权限(sudo ls /root)
特殊字符处理:文件名含空格或换行符时,需用引号包裹或转义:ls "my file.txt";ls 'my file.txt';ls my\ file.txt
性能影响:在含数十万文件的目录中使用-R或复杂组合选项(如 -lhtR)可能导致卡顿,建议优先使用find替代递归遍历。
隐藏文件逻辑:ls默认不显示隐藏文件,需显式使用 -a。若需排除.和..目录,可用ls -A。
评论区