ls— Linux 手册页
文章目录
名称语法
ls - 列出文件和目录
ls [选项]…[文件]…
描述
ls 命令用于列出指定路径下的文件和目录。它提供了查看文件信息、排序输出和筛选特定类型文件的功能。ls 命令最早出现在 Unix 系统中,是一个常见的文件操作工具。它被设计为快速、简单和高效的列出文件和目录的方式。
选项
适用于 ls 命令的选项有:
选项 | 描述 |
---|---|
-a, --all | 不忽略以 . 开头的条目 |
-A, --almost-all | 不列出隐含的 . 和 … |
–author | 在 -l 时显示每个文件的作者 |
-b, --escape | 对非图形字符打印 C 风格转义符 |
–block-size=SIZE | 在 -l 时按 SIZE 缩放大小进行打印;例如,‘–block-size=M’;参见下面的 SIZE 格式 |
-B, --ignore-backups | 不列出以 ~ 结尾的隐含条目 |
-c | 对 -lt:按 ctime(文件状态信息的最后更改时间)排序并显示;对 -l:显示 ctime 并按名称排序;否则:按 ctime 排序,最新的先显示 |
-C | 按列方式列出条目 |
–color[=WHEN] | 根据 WHEN 对输出进行着色;更多信息请参阅下面的说明 |
-d, --directory | 仅列出目录本身,而不是其内容 |
-D, --dired | 生成适用于 Emacs 的 dired 模式的输出 |
-f | 按目录顺序列出所有条目 |
-F, --classify[=WHEN] | 在条目后添加指示符(其中之一为 */=>@ |
–file-type | 类似于上述,但不追加 ‘*’ |
–format=WORD | across -x,commas -m,horizontal -x,long -l,single-column -1,verbose -l,vertical -C |
–full-time | 类似于 -l --time-style=full-iso |
-g | 类似于 -l,但不列出所有者 |
–group-directories-first | 在文件前先列出目录;可以与 --sort 选项一起使用,但使用 --sort=none (-U) 将禁用分组 |
-G, --no-group | 在长格式列表中,不打印组名 |
-h, --human-readable | 与 -l 和 -s 一起使用,以类似 1K、234M、2G 的形式打印大小 |
–si | 类似于上述,但使用 1000 的幂次而不是 1024 |
-H, --dereference-command-line | 跟随命令行上列出的符号链接 |
–dereference-command-line-symlink-to-dir | 跟随指向目录的每个命令行符号链接 |
–hide=PATTERN | 不列出与 shell PATTERN 匹配的隐含条目(被 -a 或 -A 覆盖) |
–hyperlink[=WHEN] | 链接文件名 WHEN |
–indicator-style=WORD | 附加样式为 WORD 的指示符到条目名称后面:none(默认值)、slash (-p)、file-type (–file-type)、classify (-F) |
-i, --inode | 打印每个文件的索引号 |
-I, --ignore=PATTERN | 不列出与 shell PATTERN 匹配的隐含条目 |
-k, --kibibytes | 对于文件系统使用,默认使用 1024 字节块;仅与 -s 和每个目录的总计一起使用 |
-l | 使用长格式进行列出 |
-L, --dereference | 在显示符号链接的文件信息时,显示所链接文件的信息而不是链接本身的信息 |
-m | 使用逗号分隔的列表填充宽度 |
-n, --numeric-uid-gid | 类似于 -l,但列出数值用户和组 ID |
-N, --literal | 打印未引用的条目名称 |
-o | 类似于 -l,但不列出组信息 |
-p, --indicator-style=slash | 向目录追加 / 指示符 |
-q, --hide-control-chars | 打印 ? 代替非图形字符 |
–show-control-chars | 将非图形字符按原样显示(默认值,除非程序为 ‘ls’ 并且输出是终端) |
-Q, --quote-name | 用双引号括起条目名称 |
–quoting-style=WORD | 使用 WORD 引用样式的条目名称:literal、locale、shell、shell-always、shell-escape、shell-escape-always、c、escape (覆盖 QUOTING_STYLE 环境变量) |
-r, --reverse | 反向排序 |
-R, --recursive | 递归列出子目录内容 |
-s, --size | 打印每个文件的分配大小(以块为单位) |
-S | 按文件大小排序,最大的排在前面 |
–sort=WORD | 按 WORD 而不是名称进行排序:none (-U),size (-S),time (-t),version (-v),extension (-X),width |
–time=WORD | 选择要显示或排序的时间戳;访问时间 (-u):atime、access、use;元数据更改时间 (-c):ctime、status;修改时间(默认值):mtime、modification;创建时间:birth、creation |
–time-style=TIME_STYLE | 在 -l 中选择时间/日期格式;请参阅下面的 TIME_STYLE |
-t | 按时间排序,最新的排在前面;参见 --time |
-T, --tabsize=COLS | 假设每个 COLS 处有一个制表符停止位,而不是 8 |
-u | 对于 -lt:按访问时间排序并显示;对于 -l:显示访问时间并按名称排序;否则:按访问时间排序,最新的先显示 |
-U | 不排序;按目录顺序列出条目 |
-v | 在文本中自然排序(版本)数字 |
-w, --width=COLS | 将输出宽度设置为 COLS。0 表示无限制 |
-x | 按行而不是按列列出条目 |
-X | 按条目扩展字母表顺序排序 |
-Z, --context | 打印每个文件的安全上下文 |
–zero | 以 NUL 而不是换行符结束每行输出 |
十种主要用法及其代码示例
1.列出当前目录的文件和子目录
$ ls
输出示例:
file1.txt file2.txt directory1 directory2
2.列出指定目录的文件和子目录
$ ls directory
输入示例:
$ ls /home/user/Documents
输出示例:
file1.txt file2.txt directory1 directory2
3.列出所有文件,包括隐藏文件
$ ls -a
输出示例:
. .. file1.txt file2.txt .hidden_file directory1 directory2
4.使用长格式显示文件详细信息
$ ls -l
输出示例:
-rw-r--r-- 1 user group 1024 Mar 10 09:00 file1.txt
-rw-r--r-- 1 user group 2048 Mar 11 10:15 file2.txt
drwxr-xr-x 2 user group 4096 Mar 12 14:30 directory1
drwxr-xr-x 2 user group 4096 Mar 13 16:45 directory2
5.以人类可读的方式显示文件大小
$ ls -lh
输出示例:
-rw-r--r-- 1 user group 1.0K Mar 10 09:00 file1.txt
-rw-r--r-- 1 user group 2.0K Mar 11 10:15 file2.txt
drwxr-xr-x 2 user group 4.0K Mar 12 14:30 directory1
drwxr-xr-x 2 user group 4.0K Mar 13 16:45 directory2
6.反向排序显示文件列表
$ ls -r
输出示例:
directory2 directory1 file2.txt file1.txt
7.按修改时间排序显示文件列表
$ ls -t
输出示例:
directory2 directory1 file2.txt file1.txt
8.仅显示目录本身,而不列出子目录内容
$ ls -d
输出示例:
directory1 directory2
9.在文件名后加上文件类型标识符
$ ls -F
输出示例:
file1.txt file2.txt directory1/ directory2/
10.递归列出指定目录及其子目录的内容
$ ls -R directory
输入示例:
$ ls -R /home/user/Documents
输出示例:
file1.txt file2.txt
directory1:
file3.txt file4.txt
directory2:
file5.txt file6.txt
其他类似命令
- tree:tree 命令用于以树形结构显示文件和目录的层次关系。
详细区别
ls 和 tree 都是用于显示文件和目录的命令,但它们之间存在一些区别。主要区别包括:
- ls 命令以简洁的方式列出文件和目录,并提供了多种选项用于排序、过滤和显示详细信息。
- tree 命令以树状结构显示文件和目录的层次关系,可以更直观地展示文件系统的结构。