Linux 中的 ls 命令(列出文件和目录)

2023-11-13

ls是任何 Linux 用户都应该知道的基本命令之一。

The ls命令列出文件系统中的文件和目录,并显示有关它们的详细信息。它是安装在所有 Linux 发行版上的 GNU 核心实用程序包的一部分。

本文将通过实际示例和最常见 ls 选项的详细说明向您展示如何使用 ls 命令。

如何使用ls命令#

语法为ls命令如下:

ls [OPTIONS] [FILES]

当不带选项和参数使用时,ls显示目录中所有文件的名称列表当前工作目录 :

ls

这些文件按字母顺序列出,尽可能多的列可以适合您的终端:

cache  db  empty  games  lib  local  lock  log  mail  opt  run  spool  tmp

要列出特定目录中的文件,请将目录路径作为参数传递给ls命令。例如,要列出的内容/etc目录,您可以输入:

ls /etc

您还可以传递以空格分隔的多个目录和文件:

ls /etc /var /etc/passwd

如果您登录的用户没有该目录的读取权限,您将收到一条消息:ls无法打开目录:

ls /root
ls: cannot open directory '/root': Permission denied

The ls命令有多个选项。在下面的部分中,我们将探讨最常用的选项。

长列表格式#

默认输出为ls命令仅显示文件和目录的名称,信息量不大。

The -l(小写 L)选项告诉ls以长列表格式打印文件。

当使用长列表格式时,您可以看到以下文件信息:

  • 文件类型。
  • 文件权限。
  • 文件的硬链接数。
  • 文件所有者。
  • 文件组。
  • 文件大小。
  • 日期和时间。
  • 文件名。

这是一个例子:

ls -l /etc/hosts
-rw-r--r-- 1 root root 337 Oct  4 11:31 /etc/hosts

让我们解释一下输出中最重要的列。

第一个字符显示文件类型。在此示例中,第一个字符是-,表示常规文件。其他文件类型的值如下:

  • -- 常规文件。
  • b- 阻止特殊文件。
  • c- 角色特殊文件。
  • d- 目录。
  • l- 符号链接。
  • n- 网络文件。
  • p - FIFO.
  • s- 插座。

接下来的九个字符显示文件权限。前三个字符用于用户,接下来的三个字符用于组,最后三个字符用于其他人。您可以使用以下命令更改文件权限chmod命令。权限字符可以采用以下值:

  • r- 读取文件的权限。
  • w- 写入文件的权限。
  • x- 执行文件的权限。
  • s - setgid bit.
  • t - sticky bit.

在我们的例子中,rw-r--r--表示用户可以读写该文件,组和其他人只能读取该文件。号码1权限字符后面是该文件的硬链接数。

接下来的两个字段root root显示文件所有者和组,然后是文件的大小(337),以字节为单位显示。使用-h如果您想以人类可读的格式打印尺寸,请选择此选项。您可以使用以下命令更改文件所有者chown命令。

Oct 4 11:31是最后一次文件修改日期和时间。

最后一列是文件的名称。

显示隐藏文件#

默认情况下,ls命令不会显示隐藏文件。在 Linux 中,隐藏文件是指以点 (.).

要显示包括隐藏文件在内的所有文件,请使用-a option:

ls -la ~/
drwxr-x--- 10 linuxize  linuxize  4096 Feb 12 16:28 .
drwxr-xr-x 18 linuxize  linuxize  4096 Dec 26 09:21 ..
-rw-------  1 linuxize  linuxize  1630 Nov 18  2017 .bash_history
drwxr-xr-x  2 linuxize  linuxize  4096 Jul 20  2018  bin
drwxr-xr-x  2 linuxize  linuxize  4096 Jul 20  2018  Desktop
drwxr-xr-x  4 linuxize  linuxize  4096 Dec 12  2017 .npm
drwx------  2 linuxize  linuxize  4096 Mar  4  2018 .ssh

对输出进行排序#

正如我们已经提到的,默认情况下,ls命令按字母顺序列出文件。

The --sort选项允许您按扩展名、大小、时间和版本对输出进行排序:

  • --sort=extension (or -X) - 按扩展名字母顺序排序。
  • --sort=size (or -S) - 按文件大小排序。
  • --sort=time ( or -t) - 按修改时间排序。
  • --sort=version (or -v) - 版本号的自然排序。

如果您想以相反的排序顺序获得结果,请使用-r option.

例如,对文件进行排序/var按修改时间排列的目录,按照您将使用的相反排序顺序:

ls -ltr /var

值得一提的是ls命令不显示目录内容占用的总空间。到获取目录的大小, 使用du命令。

递归列出子目录#

The -R选项告诉ls命令递归显示子目录的内容:

ls -R

结论#

The ls命令列出有关文件和目录的信息。

欲了解更多信息ls访问GNU Coreutils 页面或输入man ls在您的终端中。

如果您有任何问题或反馈,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 中的 ls 命令(列出文件和目录) 的相关文章

随机推荐

  • 单体服务和微服务之间的区别

    在软件架构领域 近年来两种主要风格引起了广泛关注 单体架构和微服务 当企业和开发人员寻求创建可扩展 可维护且灵活的系统时 了解这两种架构风格之间的区别至关重要 整体架构 定义 整体架构由单个代码库组成 其中所有功能都交织在一起并进行管理 特
  • 如何为您的域生成 SPF 记录

    当您将 SPF 记录添加到您的域时 它有助于指示您的电子邮件是否被欺骗 发件人策略框架 SPF 系统是电子邮件管理员可以用来防止垃圾邮件发送者在垃圾邮件的 发件人 字段中使用其域的标准 例如 如果您从组织的电子邮件地址发送电子邮件 而其他人
  • 如何在 CentOS/RHEL 8 上安装 Tomcat 8.5

    Apache Tomcat 8 5 是可用于安装 Tomcat 8 系列的最新版本 Tomcat 是一个开源 Web 服务器 用于由 Apache 基金会开发的基于 Java 的应用程序 我们使用 Tomcat 来部署 Java Servl
  • 反转字符串的 Python 程序

    字符串是字符序列 在Python中 字符串是字符数据的有序序列 因此可以用这种语言进行索引 Python 不支持字符类型 但它们被视为长度为 1 的字符串 也被视为子字符串 大多数编程面试中的一个常见问题是关于在 Python 中反转字符串
  • 如何在 Ubuntu 18.04 和 16.04 上使用 Let’s Encrypt 保护 Apache

    Let s Encrypt 是一家证书颁发机构 CA 免费提供免费的 SSL TLS 证书以增强安全性 您可以为任何域 子域生成 CA 签署的 SSL 证书 无需任何成本并在您的服务器上使用 它还提供了自动续订 SSL 证书以供长期使用的选
  • 如何在 CentOS 8 上安装和配置 Gitlab

    Gitlab是源代码管理应用工具 它是 Github 的最佳替代品 它还为自托管版本的用户提供了一个选项 您只需安装Gitlab服务器即可充分利用其出色的功能 本教程将帮助您在 CentOS 8 Linux 系统上安装和配置 Gitlab
  • 如何在 Ubuntu 16.04 LTS 上安装 MySQL 5.7

    MySQL 是一个开源关系数据库管理系统 本教程将帮助您在 Ubuntu 和 Debian 系统上安装 MySQL 服务器 与之前的版本相比 该版本有多项安全改进 步骤 1 配置 Apt 存储库 下载 MySQL 团队官方提供的 MySQL
  • 如何在 Linux 上禁用 IPv6

    IPv6是下一代互联网协议 旨在取代当前的互联网协议 IP 版本 4 两个设备之间的通信需要 IP 地址 它是互联网上计算机的身份 本文将帮助您从 Linux 机器中禁用 IPv6 1 检查 IPv6 地址 Use 如果配置命令查看系统上当
  • 如何使用命令行备份 SAP HANA 数据库

    SAP HANA是一个内存数据平台 可部署为本地设备或云中 它是一个革命性的平台 最适合执行实时分析以及开发和部署实时应用程序 点击here了解有关 SAP HANA 的更多信息 使用以下步骤使用命令行备份 SAP HANA 数据库 仅建议
  • 如何从 Linux 系统中完全删除 MySQL

    MySQL 是一种流行的开源关系数据库管理系统 然而 有时由于各种原因 您可能需要从 Linux 系统中删除 MySQL 例如升级到新版本 替换为其他数据库系统或干脆卸载它 在本文中 我们将向您展示如何以安全有效的方式从 Linux 系统中
  • 如何在 Linux 中强制用户下次登录时更改密码

    所有的Linux系统都将用户信息保存在 etc passwd and etc shadow文件 用户密码和帐户期限详细信息存储在影子文件中 时效信息包含密码更改和帐户状态的详细信息 在本教程中 您将了解如何在 Linux 中强制用户更改密码
  • 如何在 Ubuntu 22.04 和 20.04 上安装和使用 Rkhunter

    Rkhunter 是 Rootkit Hunter 的缩写 是一种开源安全工具 可扫描 Linux 和 Unix 系统中的 rootkit 后门和其他可能的安全威胁 它是任何具有安全意识的用户工具包的重要补充 本文将提供有关如何在 Ubun
  • 如何在 Ubuntu 20.04 上安装 Anaconda

    Anaconda 是一个用于 R 编程和 Python 的开源平台 其中包含各种各样的包和存储库 它的功能很重要 因为它提供大规模的处理和计算数据 并且还可以用Python语言进行编程 Anaconda 是一个很好的 Python 应用程序
  • 如何在 Java 中使用三元运算符并举例

    与其他编程语言一样 Java 也提供了三元运算符 三元运算符是 if then else 语句的简单单行语句 三元运算符使用 and 简单 一个简单的三元运算符的工作原理类似于如果 那么 否则陈述 如果任何条件计算为 true 则执行 tr
  • 如何使您的功能分支保持最新。

    在 git 存储库中为新功能创建单独的分支是个好主意 在这种情况下 不要忘记使您的功能分支与主分支保持同步 因此 请定期更新您的功能分支 以避免任何合并冲突 本教程将帮助您从父分支更新功能分支 我们假设您的父分支是 master 执行以下命
  • 如何在 CentOS/RHEL 8 上安装 PHP 8

    PHP 8 0 是 PHP 团队于 2020 年 11 月 26 日发布的重大更新 较之前版本包含大量新功能和优化 要了解更多信息 请阅读PHP 8 变更日志 REMI 和 EPEL 是最流行的存储库 包含用于安装的最新 RPM 软件包 它
  • 什么是开放系统互连 (OSI) 模型?

    The 开放系统互连 OSI 模型是网络中的一个重要概念 您必须理解它才能掌握数据在网络中传输的方式 如果您是网络世界的新手 这份综合指南将为您提供 OSI 模型的扎实介绍 什么是 OSI 模型 OSI 模型是一个概念框架 用于标准化通信或
  • 如何将 Ubuntu 升级到 22.04 LTS (Jammy Jellyfish)

    Ubuntu 22 04 LTS Jammy Jellyfish 已于 2022 年 4 月 21 日发布 该版本将支持到 2027 年 升级谁 Ubuntu 桌面和开发用户可以立即升级到 Ubuntu 22 04 LTS 但Ubuntu服
  • 使用 Curl 传递自定义标头:实用指南

    Curl 是一个强大的命令行工具 世界各地的开发人员都使用它来通过 URL 传输数据 Curl 是一种多功能工具 支持各种协议 例如 HTTP HTTPS FTP 等 Curl 的宝贵功能之一是它能够在发出请求时传递自定义标头 本文旨在深入
  • Linux 中的 ls 命令(列出文件和目录)

    ls是任何 Linux 用户都应该知道的基本命令之一 The ls命令列出文件系统中的文件和目录 并显示有关它们的详细信息 它是安装在所有 Linux 发行版上的 GNU 核心实用程序包的一部分 本文将通过实际示例和最常见 ls 选项的详细