如何在 Linux 中查找文件
在 Linux 系统上搜索文件的方法有很多种。 每个都有其优点和缺点。 但为了获得最佳结果,最好尽可能多地了解它们。
图形程序通常带有集成搜索,虽然它们很方便,但它们通常有其局限性。 这就是 shell 搜索工具派上用场的地方,因为它们提供了更多功能。
以下列表显示了在 Linux 中搜索文件的最常用方法,并包含每个程序的语法和使用模式。
您应该注意,只有第一个 命令 适用于图形程序,所以其余的是 shell 程序。
Linux 搜索方法
命令 | 描述 | |
---|---|---|
1. | CTRL + F | 在大多数 GUI 程序中调用搜索功能 |
2. | 发现 | 具有强大功能的广泛搜索工具 |
3. | 定位 | 快速的数据库驱动搜索工具 |
4. | grep的 | 强大的基于正则表达式的搜索工具 |
5. | 这 | 用于搜索可执行文件 |
6. | 哪里 | 搜索可执行文件、其来源和手册页文件 |
1.CTRL+F
Ctrl+F 是大多数图形程序在系统上搜索文件的标准功能。 它适用于 Gnome 文件管理器 Nautilus、KDE 文件管理器 Dolphin 和 Thunar、Xfce 文件管理器。
它还适用于许多其他程序,例如用于阅读 .pdf 文件的 Evince、Firefox 浏览器、Libre Office 等办公程序等等。
用法很简单。 使用该程序时,您需要搜索文件,同时按键盘上的 Ctrl 和 F 键,程序上会打开一个搜索栏。
2。 找
在 Linux 平台上搜索东西时,find 是所有工具的鼻祖。 它是一个多功能且非常强大的程序,它需要多种选择才能使其以多种不同的风格工作。
查找程序有很多选项、运算符和打印格式,不可能简单地阅读和了解它们。 如果你想学习 find 程序,你需要经常阅读手册页和信息页。 以下是一些示例以及它们的作用:
man find > #read 手册页查找条目
info find > #read info pages 查找条目
find 的一般语法如下:
查找 [选项] [路径...] [表达式]
其中 options 指的是它的许多选项,路径是您要开始搜索的位置,表达式包括许多可供使用的搜索模式和运算符。
但是,您可以快速学习和记住一些选项,它们如下:
一种
这会根据文件的类型搜索文件,它可以包括“f”代表常规文件,“d”代表目录,“l”代表符号链接。
find -type f -name '*.js' #查找用户家中的所有JavaScript文件
b) -名称
如上所示,这会在文件名中搜索给定模式 (*.js) 的出现。
c) -时间
使用 -mtime 选项,您可以指定基于时间的搜索条件,例如
find -mtime 7 #查找上周(7天)修改过的所有文件
d) - 尺寸
您还可以使用文件的大小作为搜索条件,例如
find -size +15k > #查找主目录下所有大于15kb的文件
请注意,所有选项的参数都可以采用 - 或 + 数字来显示小于或大于。 例如,小于 2 的 -2 和大于 15 的 +15。还有很多选项,您应该阅读 shell 上的“man find”和“info find”条目以了解这个强大的程序。
3.找到
locate 命令是 Linux 上另一个令人印象深刻的搜索工具。 它不像 find 命令那样功能丰富,但速度要快得多,因为它使用数据库条目来执行它的魔力。
定位也更容易使用,不需要你输入搜索路径。 只需输入 locate,后跟文件名的模式,它将返回所有符合该模式的文件。 例如:
locate moz > #查找名称中包含'moz'的所有文件,例如mozilla
Locate 还提供了一些选项,例如 -i 或 –ignore-case,因为它是区分大小写的搜索工具。 例如:
locate -i moz > #查找 mozilla、MOZILLA 和 Mozilla 命名的文件
4。 握
有时您可能知道文件中包含的某些单词。 因此,虽然 find 和 locate 命令可能不适合查找此类文件,但 grep 命令却非常适合这项工作。
Grep 代表全局正则表达式打印。 它接受正则表达式作为参数,还可以根据您的喜好格式化其输出。 它可以为匹配的单词着色,打印它们的行号,或者只打印匹配文件的名称。
请记住,grep 匹配文件名和文件内容,您也可以自由地为每个文件提供模式。 grep 语法如下所示:
grep [选项]'模式'文件
有很多可用的选项,您可以根据需要组合它们,但是如果您学习 regex(正则表达式),您将充分利用 grep,因为它们真的很有帮助。 信息和手册页也很好地解释了这一点。
以下是一些 grep 示例及其作用:
grep 'foobar' > #查找当前目录下所有包含foobar的文件
grep -in 'foobar' > #不区分大小写并打印行号
grep -inr 'foobar' /home/user > #递归搜索/home/user下的所有文件夹
grep -ir 'table' *.html > #查找主目录下所有包含表的html文件
5.哪个
如果出于某种原因,您需要知道 Linux 中可执行文件的绝对路径,请使用 which 命令。 它是这样工作的:
which grep > #returns /bin/grep 在 Ubuntu 上作为 grep 的绝对路径
which which > #returns /usr/bin/which
6. 在哪里
Whereis 有点像 which,但它返回任何给定命令的二进制文件、源文件和手册页文件。 这是一个例子:
whereis grep > #returns only binary & man files /bin/grep /usr/share/man/man1/grep.1.gz
总结
我们已经到了如何在 Linux 命令列表中查找文件的结尾。 如您所见,shell 中有多种工具和选项。 所以每个人都有一些东西。
只需花时间学习和练习这些工具,并记得阅读它们的信息和手册页。 不久之后,您在 Linux 上的文件搜索将变得非常高效。