命令行快速提示:如何定位文件

[ad_1]

我们的计算机上都有文件——文档、照片、源代码,应有尽有。 这么多。 肯定比我记得的要多。 如果没有挑战性,找到您正在寻找的合适的人可能会很耗时。 在这篇文章中,我们将了解如何在命令行上理解您的文件,尤其是如何快速找到您要查找的文件。

好消息是,Linux 命令行中几乎没有非常有用的实用程序,专门用于在您的计算机上查找文件。 我们将看看其中的三个:ls、tree 和 find。

ls

如果您知道文件在哪里,并且只需要列出它们或查看有关它们的信息,那么 ls 就在这里。

只需运行 ls 即可列出当前目录中所有可见的文件和目录:

$ ls
Documents  Music  Pictures  Videos  notes.txt

添加 -l 选项显示有关文件的基本信息。 并与 -H 选项您将看到人类可读格式的文件大小:

$ ls -lh
total 60K
drwxr-xr-x 2 adam adam 4.0K Nov  2 13:07 Documents
drwxr-xr-x 2 adam adam 4.0K Nov  2 13:07 Music
drwxr-xr-x 2 adam adam 4.0K Nov  2 13:13 Pictures
drwxr-xr-x 2 adam adam 4.0K Nov  2 13:07 Videos
-rw-r--r-- 1 adam adam  43K Nov  2 13:12 notes.txt

还可以搜索特定地点:

$ ls Pictures/
trees.png  wallpaper.png

或者一个特定的文件——即使只是名称的一部分:

$ ls *.txt
notes.txt

少了什么? 寻找隐藏文件? 没问题,使用 -一个 选项:

$ ls -a
.   .bash_logout   .bashrc  Documents  Pictures  notes.txt
..  .bash_profile  .vimrc   Music      Videos

还有许多其他有用的选项 ls,您可以将它们组合在一起以实现您所需要的。 通过运行了解它们:

$ man ls

如果您想查看文件的树形结构,那么 tree 是一个不错的选择。 默认情况下它可能没有安装,您可以使用包管理器 DNF 自己安装:

$ sudo dnf install tree

不带任何选项或参数的运行树显示从当前目录开始的整个树。 只是一个警告,这个输出可能很大,因为它将包括所有文件和目录:

$ tree
.
|-- Documents
|   |-- notes.txt
|   |-- secret
|   |   `-- christmas-presents.txt
|   `-- work
|       |-- project-abc
|       |   |-- README.md
|       |   |-- do-things.sh
|       |   `-- project-notes.txt
|       `-- status-reports.txt
|-- Music
|-- Pictures
|   |-- trees.png
|   `-- wallpaper.png
|-- Videos
`-- notes.txt

如果这太多了,我可以使用 -L 选项限制它的级别数,后跟一个指定我想要查看的级别数的数字:

$ tree -L 2
.
|-- Documents
|   |-- notes.txt
|   |-- secret
|   `-- work
|-- Music
|-- Pictures
|   |-- trees.png
|   `-- wallpaper.png
|-- Videos
`-- notes.txt

您还可以显示特定路径的树:

$ tree Documents/work/
Documents/work/
|-- project-abc
|   |-- README.md
|   |-- do-things.sh
|   `-- project-notes.txt
`-- status-reports.txt

要浏览和搜索一棵巨大的树,可以与 less 一起使用:

$ tree | less

同样,您可以将其他选项与三个一起使用,您可以将它们组合在一起以获得更大的功率。 手册页包含所有内容:

$ man tree

寻找

那么那些存在于未知世界的文件呢? 让我们找到他们!

如果您的系统上没有 find ,您可以使用 DNF 安装它:

$ sudo dnf install findutils

不带任何选项或参数运行 find 递归地列出当前目录中的所有文件和目录。

$ find
.
./Documents
./Documents/secret
./Documents/secret/christmas-presents.txt
./Documents/notes.txt
./Documents/work
./Documents/work/status-reports.txt
./Documents/work/project-abc
./Documents/work/project-abc/README.md
./Documents/work/project-abc/do-things.sh
./Documents/work/project-abc/project-notes.txt
./.bash_logout
./.bashrc
./Videos
./.bash_profile
./.vimrc
./Pictures
./Pictures/trees.png
./Pictures/wallpaper.png
./notes.txt
./Music

但 find 的真正强大之处在于您可以按名称搜索:

$ find -name do-things.sh
./Documents/work/project-abc/do-things.sh

或者只是名称的一部分——比如文件扩展名。 让我们找到所有 .txt 文件:

$ find -name "*.txt"
./Documents/secret/christmas-presents.txt
./Documents/notes.txt
./Documents/work/status-reports.txt
./Documents/work/project-abc/project-notes.txt
./notes.txt

您还可以按大小查找文件。 如果您的空间不足,这可能特别有用。 让我们列出所有大于 1 MB 的文件:

$ find -size +1M 
./Pictures/trees.png
./Pictures/wallpaper.png

也可以搜索特定目录。 假设我想在我的 Documents 目录中找到一个文件,并且我知道它的名称中有“项目”一词:

$ find Documents -name "*project*"
Documents/work/project-abc
Documents/work/project-abc/project-notes.txt

啊! 这也显示了目录。 我可以做的一件事是将搜索查询限制为仅文件:

$ find Documents -name "*project*" -type f
Documents/work/project-abc/project-notes.txt

再说一次,find 还有更多可以使用的选项,手册页肯定会帮助你:

$ man find

[ad_2]

Related Posts