Linux 必备命令:使用 ls -al 一目了然查看隐藏文件与权限的方法

概述

在 Linux 环境中,查看隐藏的配置文件或文件权限是系统管理和开发的第一步。本文将介绍如何使用 ls -al 命令快速准确地查看包括隐藏文件在内的内容,以及实务中必备的常用选项。通过终端实操,全面掌握文件权限和排序技巧吧。

1. Linux 文件系统与隐藏文件(.)的概念及 -a 选项

mkdir -p ~/ls_practice && cd ~/ls_practice 命令用于创建实操所需的目录并移动到该位置。
使用 mkdir 创建目录后,通过 && 运算符连续执行 cd 命令进行移动。
执行结果为在指定路径中正常创建目录,并变更当前工作目录。
⚙️ [主要选项]

-p : 必要时连同父目录一起创建,即使目录已存在也不会报错。
-m : 创建目录时直接设置访问权限。
-v : 在屏幕上输出目录创建过程的详细信息。

mkdir -p ~/ls_practice && cd ~/ls_practice

touch sample_file.txt 命令用于新建一个实操用的普通文本文件。
touch 本来是用于修改文件时间戳的命令,但如果文件不存在,则会新建一个 0 字节的空文件。
执行结果为在当前目录下生成一个没有任何内容的 sample_file.txt 文件。
⚙️ [主要选项]

-a : 仅更改文件的访问(access)时间。
-m : 仅更改文件的修改(modification)时间。
-c : 即使指定的文件不存在也不创建新文件。
-r : 更改为与指定的其他参考文件相同的时间戳设置。

touch sample_file.txt

touch .hidden_config 命令用于在文件名最前面加上点(.)来创建隐藏文件。
在 Linux 文件系统中,以点(.)开头的文件或目录会被视为系统配置用的隐藏项目。
执行结果为新建了一个通过常规方式不容易看到的 .hidden_config 隐藏配置文件。
⚙️ [主要选项]

-a : 仅更改文件的访问(access)时间。
-m : 仅更改文件的修改(modification)时间。
-c : 即使指定的文件不存在也不创建新文件。
-t : 将时间戳设置为指定的时间格式,而非当前时间。

touch .hidden_config

ls 命令用于查询当前工作目录中包含的文件和目录列表。
不带选项执行时,根据默认设置,屏幕上仅显示普通文件和目录。
执行结果为此前创建的 .hidden_config 文件不可见,仅输出普通文件 sample_file.txt 项目。
⚙️ [主要选项]

-a : 输出包括以点(.)开头的隐藏项目在内的所有文件和目录。
-l : 输出文件权限、所有者、分组、文件大小、修改时间等详细信息。
-h : 将文件大小转换为易读格式(K, M, G)进行显示。
-t : 按文件的修改时间顺序而非字母顺序对文件进行排序输出。
-r : 将排序结果反向倒序输出。
-R : 递归输出子目录内部的所有内容。

ls

ls -a 命令用于查询目录内的所有项目,包括隐藏文件和目录。
给基础 ls 命令传递 -a 选项,即可一目了然地查看以点(.)开头的隐藏文件。
执行结果为不仅显示普通文件,.hidden_config 文件以及当前目录(.)、父目录(..)都会全部输出在列表中。
⚙️ [主要选项]

-a : 输出包括以点(.)开头的隐藏文件和目录在内的所有项目。
-A : 输出以点(.)开头的隐藏文件和目录,但排除当前目录(.)和父目录(..)。
-l : 以列表形式输出权限、所有者、大小等文件的详细属性。
-F : 为区分文件类型,在目录后加上 /,在可执行文件后加上 * 符号进行输出。
-i : 一并输出各个文件和目录唯一的 inode 编号。

ls -a

2. 使用 ls -l 与 ls -al 查看详细信息及权限

echo 'Ubuntu Security' > sample_file.txt 命令用于将指定的字符串保存到文件中。
echo 命令用于输出输入的文本,重定向运算符 > 用于将输出内容覆盖写入指定文件。
执行此命令后,将新建包含 Ubuntu Security 字符串的 sample_file.txt 文件。
执行后终端不会输出额外消息,文件写入正常完成。
⚙️ [主要选项]

-n : 输出字符串后不输出末尾包含的换行符。
-e : 启用反斜杠转义字符的解析。
-E : 禁用反斜杠转义字符的解析。

echo ‘Ubuntu Security’ > sample_file.txt

echo 'Secret Key' > .hidden_config 命令用于在隐藏文件中记录配置信息。
在文件名最前面带点(.)的 .hidden_config 文件中保存 Secret Key 文本。
在 Linux 系统中,以点(.)开头的文件会被处理为隐藏文件,并从普通列表输出中排除。
命令执行结果为屏幕上不显示任何文本,隐藏文件成功创建。
⚙️ [主要选项]

-n : 移除文本输出末尾的换行符。
-e : 设置为解析转义字符。
-E : 关闭转义字符解析功能。

echo ‘Secret Key’ > .hidden_config

ls -l 命令用于将当前目录下的普通文件及目录列表与详细信息一同显示。
-l 选项以长格式输出文件权限、所有者、所属组、文件大小、最终修改时间等详细项目。
由于处于普通列表视图状态,因此以点(.)开头的隐藏文件不会显示在屏幕上。
输出第一行的 total 64 表示列表中显示的项目所占用的目录块大小。
⚙️ [主要选项]

-l : 输出文件权限、所有者、文件大小、修改时间等详细信息。
-h : 将文件大小显示为易读单位(KB, MB, GB)。
-t : 按最近修改的时间顺序对文件进行排序。
-r : 将排序顺序反向倒序输出。
-S : 按文件大小由大到小排序输出。

ls -l

ls -al 命令用于输出包含所有隐藏文件和目录的详细信息列表。
-a 选项与 -l 选项结合,连同权限及大小信息一起显示以点(.)开头的隐藏文件。
执行结果的前半部分将显示刚刚创建的 .hidden_config 以及默认隐藏项目 .dockerenv...
输出第一行的 total 76 表示因增加了隐藏文件,总块大小相比 ls -l 输出时有所增加。
⚙️ [主要选项]

-a : 输出包括以点(.)开头的隐藏文件和目录在内的所有项目。
-l : 以列表形式显示文件权限、所有者、大小、修改时间等详细信息。
-A : 输出排除当前目录(.)和父目录(..)在内的隐藏文件及所有项目。
-i : 一并输出每个文件唯一的 inode 编号。
-R : 递归输出子目录的所有内容。

ls -al

3. 结合易读单位显示的 -h 选项组合 (ls -alh)

truncate -s 5M large_file.bin 命令用于新建指定大小的空文件或调整现有文件的大小。
执行此命令将生成一个大小为 5MB 的普通测试文件 large_file.bin
⚙️ [主要选项]

-s : 以字节为单位或以 K, M, G 等单位指定文件大小。
-c : 即使指定的文件不存在也不新建文件。
-r : 设置为与现有其他参考文件的大小相同。

truncate -s 5M large_file.bin

truncate -s 10M .large_hidden_file.bin 命令用于创建一个名称以点(.)开头、大小为 10MB 的隐藏文件。
在 Linux 文件系统中,在文件名最前面加上点(.)即可将该项目指定为隐藏文件。
⚙️ [主要选项]

-s : 以字节为单位或以 K, M, G 等单位指定文件大小。
-c : 防止在文件不存在时自动新建文件。
-r : 获取并应用其他参考文件的容量作为基准值。

truncate -s 10M .large_hidden_file.bin

ls -l 命令用于以列表形式输出目录内普通文件和目录的详细属性信息。
执行结果中,large_file.bin5242880 字节为单位输出,难以直观掌握容量,且隐藏文件 .large_hidden_file.bin 被从列表中排除。
⚙️ [主要选项]

-l : 输出文件权限、所有者、字节单位的文件大小、修改时间等详细信息。
-a : 输出包括以点(.)开头的隐藏文件在内的目录所有项目。
-h : 将文件大小转换为 K, M, G 等易读的容量单位进行显示。
-t : 按最近修改的时间顺序对项目进行排序。
-r : 将排序顺序反向倒序显示。

ls -l

ls -alh 命令结合了详细信息与易读的容量单位,用于显示包含隐藏文件在内的完整列表。
执行结果中,5242880 字节自动转换为 5.0M,此前隐藏的大小为 10MB 的 .large_hidden_file.bin 文件也连同 10M 标识一起出现在列表中。
⚙️ [主要选项]

-a : 在列表中包含以点(.)开头的隐藏文件和目录。
-l : 输出包含权限、所有账号、文件大小等详细属性的列表。
-h : 将文件大小转换为 KB, MB, GB 等高可读性的单位进行显示。
-S : 按文件大小由大到小依次排序。
-R : 递归检查并输出子目录内部的文件。

ls -alh

4. 结合实务中实用的时间(-t)与大小(-S)排序选项

touch -t 202601010000 .old_hidden_log 命令用于直接指定文件的修改时间进行新建或更改。
在本示例中,为了验证时间戳排序结果,创建一个时间戳为 2026 年 1 月 1 日 00 时 00 分的空隐藏文件 .old_hidden_log
⚙️ [主要选项]

-t : 按指定的日期和时间格式设置文件的修改与访问时间。

touch -t 202601010000 .old_hidden_log

ls -alt 命令按最新修改时间顺序列出包含隐藏文件在内的所有目录项目并详细输出。
执行结果的顶部将优先排列最近修改或创建的文件。
⚙️ [主要选项]

-a : 输出包括以点开头的隐藏文件和隐藏目录在内的所有项目。
-l : 以列表形式显示文件权限、所有者、大小、修改时间等详细信息。
-t : 按最新修改时间降序排序文件及目录。

ls -alt

ls -alS 命令按文件大小从大到小的顺序排序并输出包含隐藏文件在内的所有项目的详细信息。
在快速查找大文件或大目录以管理磁盘空间时非常有用。
⚙️ [主要选项]

-a : 输出包括以点开头的隐藏文件和隐藏目录在内的所有项目。
-l : 以列表形式显示文件权限、所有者、大小、修改时间等详细信息。
-S : 按文件大小从大到小的降序对列表进行排序。

ls -alS

ls -alrt 命令按修改时间从旧到新的顺序排序并输出包含隐藏文件在内的所有项目的详细信息。
通过时间倒序排序,最近修改的文件会显示在终端屏幕的最下方,非常方便直接查看。
⚙️ [主要选项]

-a : 输出包括以点开头的隐藏文件和隐藏目录在内的所有项目。
-l : 以列表形式显示文件权限、所有者、大小、修改时间等详细信息。
-r : 将排序顺序反转倒置,按升序排序。
-t : 按最新修改时间排序文件及目录。

ls -alrt

以上整理了利用 Linux 必备命令 ls -al 查看隐藏文件与详细权限信息的方法。
希望本文能帮助您在 Linux 环境中更高效地管理文件和目录。