Linux 中的 ls 命令使用教程

目录
前言
如何运用 ls 命令
1、列出带有所有权的文件和目录
2、获取以人类可读的方式显示的信息
3、列出隐藏文件
4、递归列出文件
5、在使用 ls 时对文件和目录做区分
6、列出指定扩展名的文件
7、基于大小对输出内容排序
8、根据日期和时间排序文件
让我们来总结一下至此你已经学习到的!
前言
ls 属于 Linux 中那些简单又常用的命令之一。在本教程里,你将学到如何高效使用它。
对我个人而言,ls 无疑是 最常被使用的 Linux 命令itsfoss.com,因为我们总是借助它 列出目录内的内容itsfoss.com 来检验上一步操作的结果。
ls 命令是 “列表(List)” 的缩写,其功能就是列出你指定目录下的所有内容。
我将在本教程中,通过一系列的实例,带你一步步掌握 ls 命令的使用。
另外也会给出一些练习题,以检验你的学习成果。
如何运用 ls 命令
要使用 ls 命令,你只需遵循以下简单的命令格式:
ls [OPTIONS] Targeted_Directory
这里,
◈ [OPTIONS]:用来改变 ls 命令的默认行为。
◈ Targeted_Directory:在这里输入目录名或目录的绝对路径。
你可能会想,如果没有任何选项地使用 ls 命令会发生什么。为了回答这个问题,我在当前工作目录中使用了 ls 命令:

使用 ls 命令列出工作目录的内容
如你所见,它列出了当前工作目录中所有可用的目录和文件。但你可以做的远不止于在当前工作目录中获取名称和文件。
接下来让我给你展示一下。
1、列出带有所有权的文件和目录
ls 命令的重要用途之一就是查出具体的文件或目录的权限以及所有权信息。
这就需要你在使用 ls 命令时,带上 -l 选项(这也被称为长列表格式):
ls -l
执行该命令后,你会看到类似的输出:
$ ls -lh
-rwxrw-r-- 1 sagar sagar 666M Dec 10 18:16 Fedora.iso
注意到我是同时使用了 –h 选项吗?我们稍后会详细说明这个。
如果目前为止的输出结果看起来太复杂,那就让我来帮你简化一下:

利用 ls 命令在 Linux 中解读文件权限和所有权
如你所见,每个文本块都有特定的含义,它们分别对应文件拥有者、组和其他用户的各项权限。
对于想对文件权限有更深入理解的朋友,我推荐你阅读 我们关于 Linux 文件权限的详尽指南linuxhandbook.com:443。
2、获取以人类可读的方式显示的信息
默认状态下,文件大小以字节为单位显示,显然不是最佳的查阅方式。那如果想以更易读的方式来得知相同的信息,我们怎么做呢?
其实很简单。你只需使用 -h 选项与 ls 命令配合:
ls -l -h
接下来,我们比较下默认显示状态和可读性更强的显示方式的区别:

以人类可读的方式通过 ls 命令列出文件
明显更好了,对吧?
💡 尽管
ls命令很好地展示了文件大小,但它并不能告诉你文件夹的大小,普遍情况都会显示为 4K(LCTT 译注:这其实是“目录”这个文件所占用的大小,而不是该目录下文件的总计大小。)。如果需要了解文件夹的大小,那么你可以尝试使用du命令。
3、列出隐藏文件
和其他所有文件管理器一样,ls 命令在默认情况下并不会显示隐藏文件(这正是隐藏文件的意义所在,对吧?)。
那么,如果你期望在常规文件之外,一并 列出隐藏文件itsfoss.com 呢?只需在使用 ls 命令时带上 -a 选项就行:
ls -a
你会注意到,以 . 开头的文件名就是所谓的隐藏文件。

用 ls 命令在 Linux 终端列出隐藏文件
💡 你还可以使用
ls -A,它的功能与ls -a类似,但它不包括.和..这两个目录。
4、递归列出文件
事实上,有 多种方法可以递归列出文件linuxhandbook.com:443,使用 ls 命令就是其中之一。
如果你还不清楚,递归列出文件就是指展示所有子目录中的文件,直到每个子目录的最深层次。
你可以通过使用 -R 参数来递归列出文件:
ls -R

在 Linux 中使用 ls 命令递归列出文件
这种方式实际上为你展示了当前目录的结构,我个人非常喜欢这种方式,但你需要先进行安装。
💡 其实你并不需要进入某个目录才能查看其内容,你可以直接通过提供它的绝对路径或相对路径来列出目录内容,比如:
ls /var/log。
5、在使用 ls 时对文件和目录做区分
通常,不同的颜色就足以区分文件和目录。但是如果你基于某种原因需要给文件和目录添加符号标识,这就有一个办法。
在 ls 命令中,使用 -F 选项,它会在每个目录名末尾添加一个正斜杠 /:
ls -F

使用 ls 命令在文件和目录间做区分
6、列出指定扩展名的文件
有些情况下,你可能只希望列出具有特定扩展名的文件,实际上,这是最简单的操作之一。
做到这一点,你无需使用任何选项。只需在星号 * 后附上文件扩展名,如 *.png,*.txt 等:
ls *.extension
例如,如果我只想列出 ISO 文件,那么我将使用以下命令:
ls *.iso

列出特定扩展名的文件
7、基于大小对输出内容排序
若希望基于文件大小来对输出内容排序,你需要使用 -S 选项,它会以从大到小的方式(降序)列出文件:
ls -lhS

使用 ls 命令基于文件大小排序
相反,如果你想颠倒这个顺序,使得最小的文件首先被列出,你可以利用 -r 选项来实现反向排序:
ls -lhSr

使用 ls 命令从小到大排序文件
8、根据日期和时间排序文件
ls 命令在列出的内容中包括文件的修改时间。
如果你希望最新的文件最先被列出,可以使用 -t 选项,如下所示:
ls -lht

使用 ls 命令最先列出最新文件
你也可以像我前面提到的那样,在这里使用 -r 选项进行反转排序。
ls -lrt
这会使得最近修改的文件在列表的底部显示,当目录中存在大量文件,而你希望查看最近被修改过的文件时,这一命令会特别有用。我在解决我的软件项目问题时就经常用到它。

使用 ls -lrt 命令
让我们来总结一下至此你已经学习到的!
下面,我会共享一个表列出本教程中介绍过的一些与 ls 命令一起使用的选项:
< 如显示不全,请左右滑动 >
| 命令 | 描述 |
|---|---|
ls -l | 长格式列出文件和目录 |
ls -lh | 以人类可读的方式显示信息 |
ls -a | 在列出的内容中包括隐藏文件 |
ls -R | 递归列出文件 |
ls -F | 在目录名后添加正斜杠 |
ls *.ext | 列出具有特定扩展名的文件 |
ls -lS | 根据文件大小排序 |
ls -lt | 根据修改时间排序 |
-r | 反转排序顺序(与 -S 或 -t 结合使用) |
相关文章:
Linux 中的 ls 命令使用教程
目录 前言 如何运用 ls 命令 1、列出带有所有权的文件和目录 2、获取以人类可读的方式显示的信息 3、列出隐藏文件 4、递归列出文件 5、在使用 ls 时对文件和目录做区分 6、列出指定扩展名的文件 7、基于大小对输出内容排序 8、根据日期和时间排序文件 让我们来总结…...
Kubernetes基础入门:Kubernetes的有关概述
Kubernetes基础入门:Kubernetes的有关概述 一、摘要二、为什么需要 Kubernetes?三、Kubernetes 的功能架构 💖The Begin💖点点关注,收藏不迷路💖 一、摘要 随着云计算和容器技术的快速发展,现代…...
C# 无法将“int[]“类型隐式转换为“int?[]“,无法将“string[]“类型隐式转换为“string?[]“
在 C# 中,不能将 int[] 隐式转换为 int?[],因为它们是两种不同的类型。int[] 是一个整数数组,而 int?[] 是一个可空整数数组。要解决这个问题,你可以使用显式转换或创建一个新的可空整数数组。 两种解决方案供大家选择 // 示例…...
趣链科技,HyperChain
目录 趣链科技 HyperChain 产品介绍 CA认证即电子认证服务 趣链科技 趣链区块链平台Hyperchain-核心产品-趣链科技 趣链科技飞洛区块链服务开放平台...
吴恩达《机器学习》9-7-9-8:综合起来、自主驾驶
在神经网络的使用过程中,需要经历一系列步骤,从网络结构的选择到训练过程的实施。以下是使用神经网络时的主要步骤的小结: 一、网络结构的选择 输入层: 第一步是选择网络结构,即确定神经网络的层数以及每层的单元数。…...
HTTP/HTTPS
HTTP/HTTPS 简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP 是一个基于 TCP/IP 通信协议来传递数据&a…...
C语言中#ifndef的头文件保护用法和宏定义用法
文章目录 头文件保护宏定义 #ifndef MY_HEADER_H #define MY_HEADER_H// 这里放置头文件的内容#endif // MY_HEADER_H#ifndef _error#define _error (-1) #endif这两个代码块分别用于不同的目的。 头文件保护 #ifndef MY_HEADER_H #define MY_HEADER_H// 这里放置头文件的内…...
141.【Git版本控制-本地仓库-远程仓库-IDEA开发工具全解版】
Git-深入挖掘 (一)、Git分布式版本控制工具1.目标2.概述(1).开发中的实际常见(2).版本控制器的方式(3).SVN (集中版本控制器)(4).Git (分布版本控制器)(5).Git工作流程图 (二)、Git安装与常用命令1.Git环境配置(1).安装Git的操作(2).Git的配置操作(3).为常用的指令配置别名 (可…...
OpenCV快速入门:移动物体检测和目标跟踪
文章目录 前言一、移动物体检测和目标跟踪简介1.1 移动物体检测的基本概念1.2 移动物体检测算法的类型1.3 目标跟踪的基本概念1.4 目标跟踪算法的类型 二、差值法检测移动物体2.1 差值法原理2.2 差值法公式2.3 代码实现2.3.1 视频或摄像头检测移动物体2.3.2 随机动画生成的移动…...
针对操作系统漏洞的反馈方法
一、针对操作系统漏洞的反馈方法 漏洞扫描指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测(渗透攻击)行为。在进行漏洞扫描后,需先确定哪些是业务…...
常见的软件测试用例设计方法有哪些?
常见的软件测试用例设计方法,个人认为主要是下面这6种: 1)流程图法(也叫场景法) 2)等价类划分法 3)边界值分析 4)判定表 5)正交法 6)错误推测法 这6种常见方法中,我分别按照定义、应用场景、使用步骤、案例讲解…...
【24届校招】c++选手还有机会吗?如何选择更好的出路?
一、今年为什么c选手就业形势如此艰难? 去年c岗位的火热,不少c选手拿到高薪offer,今年转c的人群变多,内卷加剧,高学历大佬多如牛毛,很多比较好的c岗位多人投递,僧多肉少。 从行情来说…...
hvigor ERROR: Failed :entry:default@ProcessLibs...【鸿蒙开发-BUG已解决】
文章目录 项目场景:问题描述原因分析:建议的解决方案总结HarmonyOSArkTS项目场景: 项目无法在真机上运行。报错 hvigor ERROR: Failed :entry:default@ProcessLibs… hvigor ERROR: 2 file found in ‘lib/arm64-v8a/libagccrypto.so’. This may cause unexpected errors …...
由于没有公钥,无法验证下列签名: NO_PUBKEY
安装软件需要更新 sudo apt-get update 由于没有公钥,无法验证下列签名: NO_PUBKEY AA8E81B4331F7F50 NO_PUBKEY 112695A0E562B32A sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 3B4FE6ACC0B21F32 只需要把最后一部分搞成自己…...
vue3 for循环创建的多个e-form 添加校验
v-for 创建 ref <el-form :model"item" :rules"state.rules" :ref"el > getRiskSpreadRef(el, index)" ></el-form>// 定义ref list const riskSpreadRefList ref<HTMLElement[]>([]);// ref存到数组 const getRiskSpread…...
【虚拟机Ubuntu 18.04配置网络】
虚拟机Ubuntu 18.04配置网络 配置网络连接方式,查看自己网关 修改主机名 修改系统配置1. 配置网络连接方式,查看自己网关 选择虚拟机镜像设置网络连接模式,可以选择桥接或者NAT连接(我这里选择是NAT连接) 确定自己网关,可以在虚拟机 -》 编辑 -》虚拟网络编辑器…...
MySQL 中的 JSON_CONTAINS 函数详解
在处理 MySQL 中的 JSON 数据时,我们经常需要检查一个 JSON 文档是否包含特定的值。这时,JSON_CONTAINS 函数就显得非常有用。 JSON_CONTAINS函数介绍 JSON_CONTAINS 是 MySQL 提供的一个 JSON 函数,用于测试一个 JSON 文档是否包含特定的值…...
详细解答T-SNE程序中from sklearn.manifold import TSNE的数据设置,包括输入数据,绘制颜色的参数设置,代码复制可用!!
文章目录 前言——TSNE是t-Distributed Stochastic Neighbor Embedding的缩写1、可运行的T-SNE程序2. 实验结果3、针对上述程序我们详细分析T-SNE的使用方法3.1 加载数据3.2 TSNE降维3.3 绘制点3.4 关于颜色设置,颜色使用的标签数据的说明cy 总结 前言——TSNE是t-D…...
ClickHouse中的物化视图
技术主题 技术原理 物化视图(Materialized View)是一种预先计算并缓存结果的视图,存储在磁盘上自动更新,空间换时间的思路。物化视图是一种优化技术,本质上就是为了加速查询操作,降低系统负载,…...
界面组件Telerik UI for WinForms中文教程 - 创建明暗模式的桌面应用
黑暗模式现在在很多应用程序中都挺常见的,但如何在桌面应用程序中实现它呢?这很简单,本文将为大家介绍如何使用一个类和命令行调用来实现! Telerik UI for WinForms拥有适用Windows Forms的110多个令人惊叹的UI控件。所有的UI fo…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
