王柳 发表于 2024-8-18 14:57:13

【Linux】全面剖析ls命令:从基础到高级用法详解

在 Linux 系统中,ls
命令是最常用的命令之一。它用于列出目次内容,资助用户查看文件和目次的详细信息。尽管 ls
命令看似简朴,但它拥有众多选项和功能,可以满意各种需求。本文将全面剖析 ls
命令,从基础用法到高级技巧,资助读者充实掌握这一强盛的工具。
1. ls
命令的基本用法

ls
命令的基本用法非常简朴,只需在命令行输入 ls
,然后按下回车键即可。
ls
此命令将列出当前目次中的所有文件和目次。
1.1 列出指定目次的内容

使用 ls
命令可以列出指定目次的内容。只需在 ls
后面添加目次路径即可。
ls
/path/to/directory 1.2 列出隐蔽文件

在 Linux 中,以点(.)开头的文件和目次是隐蔽的。要查看这些隐蔽文件,可以使用 -a 选项。-a 代表 “all”(全部),表示显示所有文件和目次,无论它们是否隐蔽。
ls
-a 2. ls
命令的详细信息显示

ls
命令提供了很多选项来显示文件和目次的详细信息。此中,-l 选项是最常用的,表示“long format”,它会以长格式列出目次内容,显示权限、所有者、大小和修改时间等信息。
2.1 使用 -l 选项

ls
-l 此命令将输出如下格式的详细信息:
-rw-r--r--1 user group1234 Jul 16 12:34 file.txt
文件类型和权限:例如,-rw-r--r-- 表示这是一个平凡文件,所有者有读写权限,组用户和其他用户只有读取权限。
硬链接数:表示有多少个硬链接指向这个文件。
所有者:文件或目次的所有者的用户名。
组:文件或目次所属的组名。
文件大小:以字节为单元显示文件的大小。
修改时间:文件最后修改的日期和时间。
文件名:文件或目次的名称。
2.2 显示可读的文件大小

使用 -h 选项可以将文件大小显示为可读的格式(如 KB、MB),-h 选项表示“human-readable”。
ls
-lh 2.3 按修改时间排序

使用 -t 选项表示 time,可以根据文件的修改时间排序,最近修改的文件排在最前面。
ls
-lt 2.4 结合多个选项

可以将多个选项结合使用,例如同时使用 -l、-h 和 -t 选项。
ls
-lht 3. ls
命令的高级用法

除了基础用法,ls
命令还有一些高级用法,可以资助用户更高效地管理文件和目次。
3.1 列出目次结构

使用 -R 选项表示 recursive(递归),可以递归列出目次结构,包罗子目次及其内容。
ls
-R 3.2 按文件类型显示

使用 -F 选项表示 classify,可以在文件名后面添加一个符号,表示文件类型。比如,目次以 / 结尾,可执行文件以 * 结尾。
ls
-F

[*]在目次名称后附加斜杠(/)。
[*]在可执行文件后附加星号(*)。
[*]在符号链接后附加 @。
[*]在套接字文件后附加等号(=)。
[*]在管道文件后附加竖线(|)。
[*]平凡文件不附加任何字符。
3.3 按文件大小排序

使用 -S 选项表示 sort by file size,可以根据文件大小排序,最大的文件排在最前面。
ls
-lS 3.4 结合颜色显示

使用 --color 选项可以为不同类型的文件和目次显示不同的颜色,增强可读性。
ls
--color 4. ls
命令的实用技巧

通过结合不同的选项和技巧,可以更高效地使用 ls
命令。
4.1 列出最近修改的文件

结合 -lt 和 head 命令,可以只显示最近修改的几个文件。
ls
-lt | head 表明如下:


[*]ls
-lt:列出当前目次中的文件和目次,按修改时间降序排序,并以长格式显示。
[*]|:管道符号,将前一个命令的输出通报给下一个命令。
[*]head:显示前 10 行。
4.2 列出特定类型的文件

使用 grep 结合 ls
命令,可以过滤出特定类型的文件。例如,列出所有 .txt 文件。
ls
-l | grep '\.txt$' grep 的作用
grep 是一个强盛的文本搜索工具,常用于在文件或命令输出中搜索匹配特定模式的行。在这个命令中,grep 的参数 '\.txt$' 是一个正则表达式:


[*]\.:表示一个字面的点(.)。在正则表达式中,. 是一个元字符,表示任意单个字符,所以需要用反斜杠(\)举行转义。
[*]txt:表示文本字符串 txt。
[*]$:表示行尾,确保匹配的字符串位于行的末端。
因此,'\.txt$' 的完备含义是:匹配以 .txt 结尾的行。
4.3 列出权限不敷的文件

使用 ls
-l 命令可以快速查看哪些文件的权限不敷。例如,查看哪些文件不可执行。
ls
-l | grep '^-..x' 正则表达式:


[*]^:表示行的开头。
[*]-:表示平凡文件(与目次 d、符号链接 l 等区分开)。
[*]..:匹配任意两个字符,这两个字符对应文件所有者和组的权限位。
[*]x:匹配执行权限位。
因此,'^-..x' 的完备含义是:匹配以 - 开头,并且第三个字符是 x 的行。这意味着该正则表达式匹配的是平凡文件且文件所有者对其具有执行权限的行。
4.4 显示目次大小

尽管 ls
命令本身不能显示目次大小,但可以结合 du 命令来实现。
du -sh *
表明如下:


[*]du:磁盘使用情况(disk usage)的缩写,用于查看文件和目次的磁盘空间占用情况。
[*]-s:汇总(summarize),只显示每个参数的总计。
[*]-h:human-readable,以易于理解的格式(如 KB、MB、GB)显示磁盘使用情况。
[*]*:通配符,表示当前目次下的所有文件和子目次。
5. 常见错误及其办理方法

在使用 ls
命令时,可能会遇到一些常见错误。以下是一些常见错误及其办理方法。
5.1 权限不敷

假如 ls
命令提示权限不敷,可以使用 sudo 提升权限。sudo 是 “superuser do” 的缩写,是类 Unix 系统中的一个程序,它允许用户以另一个用户的身份(通常是超级用户或 root)来执行命令。
sudo ls

5.2 目次不存在

假如指定的目次不存在,ls
命令会提示错误。检查目次路径是否正确。
ls
/non/existent/path 5.3 文件名包含特殊字符

假如文件名包含特殊字符(如空格),可以使用引号或反斜杠举行转义。
ls
"file name with spaces"ls
file\ name\ with\ spaces 6. ls
命令的扩展工具

除了 ls
命令,Linux 还有一些扩展工具可以提供更强盛的功能。
6.1 exa

exa 是一个现代化的 ls
替换品,提供了更多的功能和更友爱的界面。可以使用以下命令安装 exa:
sudo apt install exa
使用 exa 列出目次内容:
exa -l
6.2 tree


tree
命令可以以树状结构显示目次内容。可以使用以下命令安装 tree

sudo apt install tree

使用 tree
列出目次结构:
tree
https://img-blog.csdnimg.cn/direct/ee9077c56a1c476d803af8a178e0eb98.gif#pic_center

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【Linux】全面剖析ls命令:从基础到高级用法详解