如何在 Mac OSX 终端中按文件名查找文件?

SPR*_*BRN 198 terminal find macos

我想在我的 Macbook 上找到一个文件名:abc.dmg. 我试过使用聚光灯,但没有找到。当我尝试 find 并使用: 时find -name abc.dmg -path /,我又得到了错误。

在 Mac OSX 终端上使用 find 命令按文件名查找文件的正确语法是什么?

VxJ*_*nxV 261

以最简单的形式,find采用一个参数:路径。在其实际有用的形式中,它采用了遵循缩小标准的路径。

因此,您想要:

  • find (该程序)
  • / (路径),和
  • -name abc.dmg (标准)。
find / -name abc.dmg
Run Code Online (Sandbox Code Playgroud)

  • 在搜索整个驱动​​器时,您可能会遇到权限被拒绝类型错误,但除非您希望文件位于受限文件夹中,否则它们可以被忽略。如果是这样,请使用 **sudo** find / -name abc.dmg (13认同)
  • 大概是这样,您的计算机上没有名为 abc.dmg 的文件。您可以使用 -iname 而不是 -name 使搜索不区分大小写。我非常怀疑您实际上是在搜索“abc.dmg”,并且鉴于(大概)事实,如果没有实际细节,很难告诉您您的问题是什么。 (9认同)
  • 鉴于 OP 报告已尝试在问题文本中查找,值得注意的是,`find` 的参数顺序 ** 很重要**。如果必须是`find [path]+ [selection, grouping, and actions]`。 (5认同)
  • @rxt:如果 find 没有找到它,它就不存在... (2认同)

小智 46

find . -name '*.csv'例如使用通配符为我工作。OP 还可以find . -name '*.dmg'用来检查他的当前目录,假设他在/.


Ric*_*lka 13

mdfind命令使用 Spotlight 数据库

http://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/mdfind.1.html

  • 但是根据 OP 的原始问题,Spotlight 没有找到它。 (2认同)

Wuf*_*ers 8

您可以使用该locate命令。

locate abc.dmg
Run Code Online (Sandbox Code Playgroud)

  • 注意 `osx` 标签。slocate db 默认不填充。 (4认同)

Jup*_*ter 5

最简单的方法(我确定您已经尝试过,但是嘿,无论如何,让我将其添加到线程中)是在任何查找器窗口右上角的搜索框中输入 abc.dmg,然后选择“文件名称”来自出现的搜索栏上的选项。

不需要终端。

另请记住,Spotlight 仅索引在 Spotlight 控制面板中指定的目录,而 abc.dmg 可能不在这些目录之一中。

如果我错了,请纠正我,但我认为 find 命令需要知道输出什么:

find / -name abc.dmg -print
Run Code Online (Sandbox Code Playgroud)

...应该将任何结果打印到终端(包括权限错误)。

如果您不想出现权限错误并想搜索其他用户目录,则:

sudo find / -name abc.dmg -print
Run Code Online (Sandbox Code Playgroud)