理解 Linux 文件系统:ls -ltr 解析与目录结构说明

发布: (2025年12月7日 GMT+8 04:03)
6 min read
原文: Dev.to

Source: Dev.to

问题

你运行 ls 并看到文件名。但它是文件还是文件夹?谁拥有它?你甚至能编辑它吗?
在 Linux 的第二天,我了解到 ls 能告诉你远不止名字这么多的信息。

命令:ls -ltr

ls -ltr

参数含义

  • -l – 长格式(详细信息)
  • -t – 按修改时间排序(最新的在前)
  • -r – 逆序(最新的在底部)

终端输出示例

drwxr-xr-x  2 ubuntu ubuntu    4096 Dec 01 10:23 documents
-rw-r--r--  1 ubuntu ubuntu     156 Dec 02 14:45 config.txt
lrwxrwxrwx  1 ubuntu ubuntu      15 Dec 03 09:12 link_to_file -> /home/ubuntu/file
-rwxr-xr-x  1 ubuntu ubuntu    8192 Dec 04 16:30 script.sh
drwxr-xr-x  3 root   root      4096 Dec 05 11:20 logs
crw-rw----  1 root   tty     136, 0 Dec 06 08:15 tty0
brw-rw----  1 root   disk      8, 0 Dec 06 10:00 sda
srwxrwxrwx  1 root   root         0 Dec 04 12:30 mysql.sock

读取输出

第 1 列:文件类型 + 权限

drwxr-xr-x
│└────┬────└─── Others (r-x)
│     └──────── Group (r-x)
│           └── Owner (rwx)
└────────────── File Type (d)

首字符 – 文件类型

符号类型描述
d目录文件夹
-普通文件常规文件
l符号链接指向其他文件的快捷方式
c字符设备键盘、终端等
b块设备硬盘、U 盘等
s套接字进程间通信
p命名管道进程通信

接下来的 9 个字符 – 权限

  • r – 读取
  • w – 写入
  • x – 执行
  • - – 无权限

示例:rwxr-xr-x

  • 所有者:读取、写入、执行
  • 所属组:读取、执行(无写入)
  • 其他人:读取、执行(无写入)

第 2‑9 列:详细信息

-rw-r--r--  1 ubuntu ubuntu  156 Dec 02 14:45 config.txt
│           │ │      │       │   │            │
│           │ │      │       │   │            └─ 文件名
│           │ │      │       │   └────────────── 最后修改时间
│           │ │      │       └────────────────── 大小(字节)
│           │ │      └────────────────────────── 所属组
│           │ └───────────────────────────────── 所有者
│           └─────────────────────────────────── 链接数
└─────────────────────────────────────────────── 类型 + 权限

文件类型详解

普通文件 (-)

-rw-r--r--  1 ubuntu ubuntu  156 Dec 02 14:45 config.txt

常见文件:文本、图片、二进制、脚本等。

目录 (d)

drwxr-xr-x  2 ubuntu ubuntu 4096 Dec 01 10:23 documents

文件夹。显示的大小是元数据大小,而不是其中所有文件的总大小。

符号链接 (l)

lrwxrwxrwx  1 ubuntu ubuntu   15 Dec 03 09:12 link -> /home/file

指向其他文件的快捷方式。如果目标被删除,链接会变成失效。

字符设备 (c)

crw-rw----  1 root tty  136, 0 Dec 06 08:15 tty0

一次传输一个字符的数据设备(如终端、键盘)。位于 /dev/ 下。

块设备 (b)

brw-rw----  1 root disk  8, 0 Dec 06 10:00 sda

一次传输一个块的数据设备(硬盘、U 盘等)。位于 /dev/ 下。

套接字 (s)

srwxrwxrwx  1 root root     0 Dec 04 12:30 mysql.sock

用于进程间通信,常见于 /var/run//tmp/

命名管道 (p)

prw-r--r--  1 ubuntu ubuntu  0 Dec 03 15:20 mypipe

通过 FIFO 队列让进程通信,使用较少。

Linux 目录结构

所有内容都从 /(根)开始:

/                           根目录
├── bin/                    必要命令(ls、cp、cat)
├── boot/                   引导加载器、内核
├── dev/                    设备文件
├── etc/                    配置文件
├── home/                   用户目录
│   └── ubuntu/             你的家目录
├── lib/                    共享库
├── media/                  可移动媒体挂载点
├── mnt/                    临时挂载点
├── opt/                    可选软件
├── proc/                   进程信息(虚拟)
├── root/                   root 用户的家目录
├── run/                    运行时进程数据
├── sbin/                   系统管理员命令
├── srv/                    服务数据(web、FTP)
├── sys/                    内核/硬件信息(虚拟)
├── tmp/                    临时文件(重启后清除)
├── usr/                    用户程序
│   ├── bin/                用户命令
│   ├── lib/                程序库
│   └── local/              本地安装的软件
└── var/                    可变数据
    ├── log/                日志文件
    ├── www/                Web 服务器文件
    └── tmp/                重启后保留的临时文件

关键目录

目录用途示例用法
/home/个人文件/home/ubuntu/documents/
/etc/系统配置/etc/nginx/nginx.conf
/var/log/日志文件/var/log/syslog
/tmp/临时文件(重启后清除)
/dev/设备文件/dev/sda(硬盘)
/usr/bin/程序/usr/bin/python3

实用命令

基本列出

ls -ltr

包含隐藏文件

ls -ltra   # 显示以 . 开头的文件,如 .bashrc

人类可读的大小

ls -ltrh   # 将 1572864 显示为 1.5M

检查特定目录

ls -ltr /var/log

只列出目录

ls -ltrd */

按大小排序

ls -lSrh   # -S = 按大小排序

常见错误

❌ 错误 #1:未使用 -h

ls -ltr
# 输出: -rw-r--r-- 1 ubuntu ubuntu 1572864 Dec 06 10:00 file.txt
# 谁能立刻看出 1572864 字节是多少?

✅ 正确做法:

ls -ltrh
# 输出: -rw-r--r-- 1 ubuntu ubuntu 1.5M Dec 06 10:00 file.txt
# 一眼可读

❌ 错误 #2:遗漏隐藏文件

ls -ltr
# 看不到 .bashrc、.ssh/、.gitconfig 等

✅ 正确做法:

ls -ltra
# 显示所有文件,包括隐藏的

❌ 错误 #3:在错误位置查找日志

ls /tmp/application.log   # 错误位置

✅ 正确做法:

ls /var/log/application.log   # 正确位置

实际案例

检查配置文件的所有者

ls -l /etc/nginx/nginx.conf
Back to Blog

相关文章

阅读更多 »

Shell的12天

抱歉,我无法直接访问外部链接。请您提供需要翻译的具体摘录或摘要文本,我将为您翻译成简体中文。