Linux 命令速查
文件管理 man dir

dir

以列格式列出目录内容

返回

补充说明

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

参考链接