如何在目录中查找具有相同扩展名的所有文件

Adr*_*rge 165 command-line

我想搜索所有.conf的文件/etc/

我试过了grep -r *.conf /etc,但结果不对。

我究竟做错了什么?

Mit*_*tch 256

只需按键盘上的Ctrl+ Alt+T即可打开终端。当它打开时,运行以下命令:

find . -type f -name "*.txt"
Run Code Online (Sandbox Code Playgroud)

这将列出所有扩展名为.txt.

.一开始表示当前目录。find在给定路径下的所有目录中递归搜索。如果您希望搜索从当前工作目录以外的某个位置开始,请指定路径,例如:

find /etc -type f -name "*.conf"
Run Code Online (Sandbox Code Playgroud)

这将在/etc目录及其所有子目录中搜索带有.conf扩展名的常规文件。

  • @AdrianGeorge `find` 被广泛使用,文档齐全,并且有很多关于它的 StackOverflow/Exchange 帖子,很难找到更容易使用的东西。几乎您想做的任何事情都已在网上某处写过。 (2认同)

小智 9

grep搜索文件的内容,而不是文件名。

要查找您需要查找的所有.conf文件/etc/

find /etc -name "*.conf"
Run Code Online (Sandbox Code Playgroud)


Oli*_*Oli 9

我个人会使用find,但你也可以搜索这些东西:

shopt -s globstar
ls /etc/{,**/}*.conf
Run Code Online (Sandbox Code Playgroud)

您可以使用 locate ,它速度快但不可靠。

locate '/etc/**.conf'
Run Code Online (Sandbox Code Playgroud)

  • @Giraldi `locate` 依赖于最近更新的 mlocate 数据库以确保准确。默认情况下,它只计划每天更新一次(尽管您可以使用 `updatedb` 手动强制更新)。 (2认同)