补充说明
dir 是 GNU coreutils 提供的列目录命令,行为与 ls 基本相同,默认多列纵向排列,并对特殊字符做转义显示。它主要用于兼容其他 Unix 环境,日常更常用 ls。
由于与 ls 共享实现,绝大多数 ls 选项都可使用,如 -a、-l、-h、-R、-S、--color。输出到管道时默认变为每行一个文件,便于脚本处理。
注意:dir 的选项与 ls 基本一致,但没有常见的彩色别名配置,适合需要稳定输出的脚本;但 POSIX 并未规定它,严格可移植的脚本仍建议用 ls 或 find。GNU coreutils 的 dir 在 Debian/RHEL 都随 coreutils 预装。
与 ls 相比,dir 的默认输出相当于 ls -C -b,即多列显示并转义特殊字符。脚本中若需要稳定、可解析的输出,仍建议显式使用 -1 或 find。
语法
dir [选项] [文件 ...]
选项
-a:显示包括隐藏文件在内的所有条目;-l:长格式,显示权限、属主、大小、时间;-h:与-l合用,以人类可读单位显示大小;-R:递归列出子目录;-S:按大小排序;-t:按修改时间排序;-1:每行一个条目;--color=auto:彩色输出。
实例
# 列当前目录
dir
# 长格式并显示隐藏文件
dir -alh
# 按修改时间排序,最新在前
dir -lt
# 递归列出并写入文件
dir -R /var/log > log-list.txt
# 每行一个文件名,便于后续处理
dir -1 | while read -r f; do echo "== $f"; done