Linux ls 命令:列出文件和目录
Linux 中的 ls 命令显示目录中的文件和子目录列表。使用 ls -la,可以查看详细信息,包括隐藏项、权限、所有者、大小和修改时间。
列出当前目录或指定路径
在终端中运行以下命令可以显示当前工作目录中的项目。可以使用 pwd 检查当前位置。
pwd
ls
要查看其他目录的内容,请指定路径。可以使用绝对路径或基于当前位置的相对路径。
ls /var
默认情况下,名称以点开头的隐藏项目会从列表中排除。名称和显示顺序取决于系统和区域设置。ls 是读取列表的命令,不会删除或修改文件。
查看隐藏项目和详细信息
-a 包括以点开头的名称,而 -l 以详细格式显示。您可以同时使用这两个选项。
ls -a
ls -l
ls -la
ls -a 也显示当前目录的 . 和上级目录的 ..。GNU ls -A 显示隐藏项目,但省略这两个条目。要以易于读取的单位显示大小,请在详细列表中添加 -h。
ls -lah
例如,它可以显示为 1K、2M。输出会根据目标文件和系统设置而有所不同。
读取详细列表
下面是显示普通文件的示例。日期格式、名称和数字会根据实际环境有所不同。
-rw-r--r-- 1 user group 12 Jan 15 10:30 notes.txt
-rw-r--r--: 第一个字符-是普通文件,其余字符表示所有者、组和其他用户的权限。如果以d开头,则表示目录;如果以l开头,则表示符号链接。1 user group: 硬链接数量、所有者和所属组。12: 在基本详细列表中的文件大小(字节)。使用-h会将其更改为易读单位。Jan 15 10:30 notes.txt: 默认显示最后修改时间和名称。输出格式取决于区域设置和选项。
目录的大小条目并不是其内部文件大小的总和。要检查整个目录的磁盘使用情况,可以使用像 du 这样的工具。链接目标通常在详细列表中以 name -> target 形式显示。
检查排序和目录本身
-t 默认按最新修改时间排序。与 -r 一起使用将会反转顺序。
ls -lt
ls -ltr
要检查目录本身的权限和所有者,而不是内部列表,请使用 -d。
ls -ld /var
-R 还会递归列出子目录,因此对于大的目录树,输出可能会很大。查看 GNU ls 手册 或 man ls 了解选项的详细含义。
使用名称模式缩小列表
在 Bash 中,星号 * 是一种名称模式,可匹配零个或多个字符。以下命令查找名称以 .conf 结尾的 /etc 中的项目。
ls -d /etc/*.conf
Shell 首先展开匹配模式的名称,然后将它们传递给 ls。由于输入了 -d,即使匹配的项目是目录,它也会显示目录名称本身。在典型的 Bash 设置中,以点开头的隐藏项目不会自动匹配。如果没有匹配的名称,结果可能因 shell 选项而异,例如出现错误或按原样传递模式。
如果路径包含空格,请像 ls "my folder" 那样使用引号引用路径。通常,如果将模式也放在引号内,shell 通常不会展开星号。有关详细信息,请参阅 Bash 文件名展开文档。
检查磁盘设备和错误
ls -l /dev/sd* 可以显示与以 sd 开头的设备文件匹配的列表。然而,并不是所有的磁盘和分区都使用该名称。其他设备,如 NVMe,可能会从列表中缺失,因此在检查块设备及其层次结构时使用 lsblk 更为合适。
lsblk
如果列表未显示或显示 Permission denied,请检查路径是否存在以及访问权限。如果输出与预期不同,请使用 type ls 检查 Shell 别名,并同时查看发行版和 ls --help 的选项说明。




