TranslateProject/published/202310/20230704.0 ⭐️⭐️ Using ls Command in Linux.md

261 lines
9.7 KiB
Markdown
Raw Normal View History

[#]: subject: "Using ls Command in Linux"
[#]: via: "https://itsfoss.com/ls-command/"
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
[#]: translator: "ChatGPT"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-16266-1.html"
Linux 中的 ls 命令使用教程
======
![][0]
> ls 属于 Linux 中那些简单又常用的命令之一。在本教程里,你将学到如何高效使用它。
对我个人而言,`ls` 无疑是 [最常被使用的 Linux 命令][1],因为我们总是借助它 [列出目录内的内容][2] 来检验上一步操作的结果。
`ls` 命令是 “<ruby>列表<rt>List</rt></ruby>” 的缩写,其功能就是列出你指定目录下的所有内容。
我将在本教程中,通过一系列的实例,带你一步步掌握 `ls` 命令的使用。
另外也会给出一些练习题,以检验你的学习成果。
### 如何运用 ls 命令
要使用 `ls` 命令,你只需遵循以下简单的命令格式:
```
ls [OPTIONS] Targeted_Directory
```
这里,
- `[OPTIONS]`:用来改变 ls 命令的默认行为。
- `Targeted_Directory`:在这里输入目录名或目录的绝对路径。
你可能会想,如果没有任何选项地使用 `ls` 命令会发生什么。为了回答这个问题,我在当前工作目录中使用了 `ls` 命令:
![使用 ls 命令列出工作目录的内容][3]
如你所见,它列出了当前工作目录中所有可用的目录和文件。但你可以做的远不止于在当前工作目录中获取名称和文件。
接下来让我给你展示一下。
#### 1、列出带有所有权的文件和目录
`ls` 命令的重要用途之一就是查出具体的文件或目录的权限以及所有权信息。
这就需要你在使用 `ls` 命令时,带上 `-l` 选项(这也被称为长列表格式):
```
ls -l
```
执行该命令后,你会看到类似的输出:
```
$ ls -lh
-rwxrw-r-- 1 sagar sagar 666M Dec 10 18:16 Fedora.iso
```
注意到我是同时使用了 `h` 选项吗?我们稍后会详细说明这个。
如果目前为止的输出结果看起来太复杂,那就让我来帮你简化一下:
![利用 ls 命令在 Linux 中解读文件权限和所有权][4]
如你所见,每个文本块都有特定的含义,它们分别对应文件拥有者、组和其他用户的各项权限。
对于想对文件权限有更深入理解的朋友,我推荐你阅读 [我们关于 Linux 文件权限的详尽指南][5]。
#### 2、获取以人类可读的方式显示的信息
默认状态下,文件大小以字节为单位显示,显然不是最佳的查阅方式。那如果想以更易读的方式来得知相同的信息,我们怎么做呢?
其实很简单。你只需使用 `-h` 选项与 `ls` 命令配合:
```
ls -l -h
```
接下来,我们比较下默认显示状态和可读性更强的显示方式的区别:
![以人类可读的方式通过 ls 命令列出文件][6]
明显更好了,对吧?
> 💡 尽管 `ls` 命令很好地展示了文件大小,但它并不能告诉你文件夹的大小,普遍情况都会显示为 4KLCTT 译注:这其实是“目录”这个文件所占用的大小,而不是该目录下文件的总计大小。)。如果需要了解文件夹的大小,那么你可以尝试使用 `du` 命令。
#### 3、列出隐藏文件
和其他所有文件管理器一样,`ls` 命令在默认情况下并不会显示隐藏文件(这正是隐藏文件的意义所在,对吧?)。
那么,如果你期望在常规文件之外,一并 [列出隐藏文件][7] 呢?只需在使用 `ls` 命令时带上 `-a` 选项就行:
```
ls -a
```
你会注意到,以 `.` 开头的文件名就是所谓的隐藏文件。
![用 ls 命令在 Linux 终端列出隐藏文件][8]
> 💡 你还可以使用 `ls -A`,它的功能与 `ls -a` 类似,但它不包括 `.` 和 `..` 这两个目录。
#### 4、递归列出文件
事实上,有 [多种方法可以递归列出文件][9],使用 `ls` 命令就是其中之一。
如果你还不清楚,递归列出文件就是指展示所有子目录中的文件,直到每个子目录的最深层次。
你可以通过使用 `-R` 参数来递归列出文件:
```
ls -R
```
![在 Linux 中使用 ls 命令递归列出文件][10]
这种方式实际上为你展示了当前目录的结构,我个人非常喜欢这种方式,但你需要先进行安装。
> 💡 其实你并不需要进入某个目录才能查看其内容,你可以直接通过提供它的绝对路径或相对路径来列出目录内容,比如:`ls /var/log`。
#### 5、在使用 ls 时对文件和目录做区分
通常,不同的颜色就足以区分文件和目录。但是如果你基于某种原因需要给文件和目录添加符号标识,这就有一个办法。
`ls` 命令中,使用 `-F` 选项,它会在每个目录名末尾添加一个正斜杠 `/`
```
ls -F
```
![使用 ls 命令在文件和目录间做区分][11]
#### 6、列出指定扩展名的文件
有些情况下,你可能只希望列出具有特定扩展名的文件,实际上,这是最简单的操作之一。
做到这一点,你无需使用任何选项。只需在星号 `*` 后附上文件扩展名,如 `*.png``*.txt` 等:
```
ls *.extension
```
例如,如果我只想列出 ISO 文件,那么我将使用以下命令:
```
ls *.iso
```
![列出特定扩展名的文件][12]
#### 7、基于大小对输出内容排序
若希望基于文件大小来对输出内容排序,你需要使用 `-S` 选项,它会以从大到小的方式(降序)列出文件:
```
ls -lhS
```
![使用 ls 命令基于文件大小排序][13]
相反,如果你想颠倒这个顺序,使得最小的文件首先被列出,你可以利用 `-r` 选项来实现反向排序:
```
ls -lhSr
```
![使用 ls 命令从小到大排序文件][14]
#### 8、根据日期和时间排序文件
`ls` 命令在列出的内容中包括文件的修改时间。
如果你希望最新的文件最先被列出,可以使用 `-t` 选项,如下所示:
```
ls -lht
```
![使用 ls 命令最先列出最新文件][15]
你也可以像我前面提到的那样,在这里使用 `-r` 选项进行反转排序。
```
ls -lrt
```
这会使得最近修改的文件在列表的底部显示,当目录中存在大量文件,而你希望查看最近被修改过的文件时,这一命令会特别有用。我在解决我的软件项目问题时就经常用到它。
![使用 ls -lrt 命令][16]
### 让我们来总结一下至此你已经学习到的!
下面,我会共享一个表列出本教程中介绍过的一些与 `ls` 命令一起使用的选项:
| 命令 | 描述 |
| :- | :- |
| `ls -l` | 长格式列出文件和目录 |
| `ls -lh` | 以人类可读的方式显示信息 |
| `ls -a` | 在列出的内容中包括隐藏文件 |
| `ls -R` | 递归列出文件 |
| `ls -F` | 在目录名后添加正斜杠 |
| `ls *.ext` | 列出具有特定扩展名的文件 |
| `ls -lS` | 根据文件大小排序 |
| `ls -lt` | 根据修改时间排序 |
| `-r` | 反转排序顺序(与 `-S``-t` 结合使用) |
### 🏋️ 并练习你所学
实践你所学总是一个好主意,这就是我们在每一份终端指南中都试图添加实践部分的原因。
所以,这里有一些关于 `ls` 命令的简单练习:
- 列出 `/var/log` 的内容
- [将命令的输出][17] 保存到名为 `output.txt` 的文件中
- 找出最近的 3 个文件(使用基于时间的排序)
- 基于大小显示文件,但排序方式要反转
- 检查是否存在任何隐藏文件
这些练习对你来说会很有帮助。期待之后更多关于 Linux 命令的学习。
如果你是初次接触终端,别忘了关注我们的终端基础系列。
祝你日有进益 :)
*题图MJ/8fb35776-5192-43ca-b96d-31bbd77c3318*
--------------------------------------------------------------------------------
via: https://itsfoss.com/ls-command/
作者:[Sagar Sharma][a]
选题:[lkxed][b]
译者:[ChatGPT](https://linux.cn/lctt/ChatGPT)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/sagar/
[b]: https://github.com/lkxed/
[1]: https://itsfoss.com/essential-ubuntu-commands/
[2]: https://itsfoss.com/list-directory-content/
[3]: https://itsfoss.com/content/images/2023/07/use-the-ls-command-to-list-the-contents-of-the-working-directory.png
[4]: https://itsfoss.com/content/images/2023/07/explain-read-write-permissions-in-linux-filesystem.png
[5]: https://linuxhandbook.com:443/linux-file-permissions/
[6]: https://itsfoss.com/content/images/2023/07/list-files-using-the-ls-command-in-human-readable-format.png
[7]: https://itsfoss.com/show-hidden-files-linux/
[8]: https://itsfoss.com/content/images/2023/07/list-hidden-files-in-Linux-terminal-using-the-ls-command.png
[9]: https://linuxhandbook.com:443/list-files-recursively/
[10]: https://itsfoss.com/content/images/2023/07/list-files-recursilvely-in-Linux-using-the-ls-command.png
[11]: https://itsfoss.com/content/images/2023/07/differenciate-between-files-and-directories-while-using-the-ls-command.png
[12]: https://itsfoss.com/content/images/2023/07/list-files-of-a-specific-file-extensions.png
[13]: https://itsfoss.com/content/images/2023/07/sort-files-based-on-their-file-size-using-the-ls-command.png
[14]: https://itsfoss.com/content/images/2023/07/sort-files-from-smallest-to-largest-using-the-ls-command.png
[15]: https://itsfoss.com/content/images/2023/07/show-newest-files-first-while-using-the-ls-command.png
[16]: https://itsfoss.com/content/images/2023/07/output_for_ls_-lrt-1.png
[17]: https://itsfoss.com/save-command-output-to-file-linux/
[0]: https://img.linux.net.cn/data/attachment/album/202310/08/200201p8sfy8shyyyspxxx.jpg