如何在Linux命令行中查找可能位于任何位置的文件/目录?

102

理想情况下,我希望能够使用类似于

find [file or directory name]

报告具有匹配文件名/目录的路径。不幸的是,这似乎只检查当前目录,而非整个文件夹。

我也尝试了 locate 和 which,但都找不到该文件,尽管我知道它在电脑上某个地方。


不确定问题出在哪里,因为 find -name "filename" 会在当前工作目录递归查找文件。 - foips
1
抱歉,如果不清楚的话,该文件可能不在当前工作目录中。它可能在计算机的任何地方。 - johncorser
查找 /<目录挂载点/部分> -name <文件名> - Channa
这个回答解决了你的问题吗?在Linux上查找文件? - Josh Correia
5个回答

158

很不幸,这似乎只检查当前目录,而不是整个文件夹。可能你的意思是它不会查找子目录。要解决此问题,请使用find -name "filename"

如果需要查找的文件不在当前工作目录中,您可以通过使用以下命令搜索整台机器:

find / -name "filename"

这也适用于类似 find / -name "*.pdf" 的东西等等。有时我也喜欢将其输送到 grep 语句中(由于至少在我的机器上可以突出显示结果),所以最终会得到类似以下的结果:

find / -name "*star*wars*" | grep star

采用这种或类似的方法,可以帮助我立即找到文件名,并识别它是否确实是我要寻找的文件。


谢谢。出于好奇,这个能用于部分文件名吗? - johncorser
6
是的,只要您使用星号。请注意,它区分大小写。如果我想查找名为STARTUP的文件,则“find / -name” * ART *“”将找到它。请注意,“find / -name” * art *“”不会定位该文件,因为“art”是小写,而“STARTUP”是大写的。 - Russell Uhl
1
@johncorser 你也应该能够使用某种正则表达式来找到你需要的内容。 - Russell Uhl
好好知道!我没有意识到我可以在查找中使用正则表达式! - johncorser
它的速度非常慢。我在EC2上有一台新的Linux机器,但它需要一分钟才能找到文件。 - ikamen

26

要消除权限错误(等问题),您可以将stderr重定向到无处

find / -name "something" 2>/dev/null

4
谢谢,这实际上回答了“如何找到可能在任何地方的文件”的问题。对于像我这样不了解标准文件夹结构并且不想输入三百个cd命令来查找文件,也不想搜索数百个权限被拒绝的行的Linux新手来说,这是完美的答案。对于我的特定情况,我正在尝试在SQL Server Linux中找到sqlcmd工具。 - Nick.McDermaid

9
find 命令需要很长时间来查找文件,最快的搜索文件的方法是使用 locate 命令,它会在一个已经建立索引的数据库中查找文件名(和路径)(这个数据库可以通过 updatedb 命令进行更新)。
只需简单的命令即可立即获得结果:
locate {file-name-or-path}

如果命令未找到,您需要先安装 mlocate 包并运行 updatedb 命令,在首次准备搜索数据库。详情请参考:https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab

2
我已经使用了查找和定位两种解决方案,可以确认定位更快。 - pink spikyhairman
"find" 没有输出任何内容且执行时间很长。而 "locate" 立即给出了文件位置。 - Vegas

8
如果需要在一些文件夹中查找嵌套的内容:
find / -type f -wholename "*dirname/filename"

或连接的目录:
find / -type d -wholename "*foo/bar"

我们如何在单个查找命令中同时使用文件和目录?我尝试了类似这样的命令:"find / -maxdepth 1 -type d,f",但是在命令行上收到一个消息,指出“find:-type的参数应该只包含一个字母”。 - Ronnie

0
我希望这条评论能够帮助您使用终端找到本地和服务器文件路径。
 find "$(cd ..; pwd)" -name "filename"

或者你只想查看你的当前位置,那么运行:

 pwd "filename"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接