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…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...

springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...