做什么

列出目录里的文件和子目录。Linux 第一个常用命令

常用参数

参数 含义
-l 详细信息(权限 + 大小 + 时间)
-a 显示隐藏文件(. 开头的)
-h 人类友好的大小(KB / MB / GB)
-t 按修改时间排序(最新在前)
-r 反向排序
-S 按大小排序
-R 递归列出子目录
-1 一列一个
-d 只看目录本身(不展开)
-i 显示 inode 号
--color=auto 彩色输出(多数发行版默认)

实战

ls                   # 当前目录
ls /etc              # 看 /etc
ls -lh               # 详细 + 人类大小
ls -la               # 详细 + 含隐藏
ls -lt | head        # 最近改的 10 个
ls -lhS              # 按大小倒序
ls -d */             # 只看子目录
ls *.log             # glob:所有 .log

输出列含义

-rw-r--r-- 1 wadely wadely 1234 May 9 10:23 hello.txt
权限       链接 owner  group  大小  修改时间   文件名

第一字符:- 普通文件 / d 目录 / l 软链接 / c 字符设备 / b 块设备。

  • ls -lh 大小单位是 1024(KiB 实际)—— 厂商标的 1000(KB)不一样
  • 文件名带空格 → ls 输出不引号,shell 脚本里要小心
  • ls 含百万级文件的目录——非常慢,用 find . -maxdepth 1printf '%s\n' *