通过终端搜索 Mac?

通过终端搜索 Mac?

有没有命令可以使用终端搜索 Mac?我尝试使用 grep 进行搜索,但它似乎没有响应,什么也没有出现。

例如,我输入“grep Files”(文件夹名称),它只会打印一个空白行,什么也不会发生。

答案1

您还可以使用该mdfind命令通过 Spotlight 执行搜索。更多信息这里

用于mdfind -name searchterm检索名称为 的文件searchterm。用于mdfind searchterm对文件名和内容进行搜索。

答案2

如果你只想查找具有特定名称的文件,请使用find

手册页可以找到这里man find或者在终端提示符下输入。

基本上,find 会递归查找符合您指定条件的文件。最简单的例子:

find . -name file_name -print

这将从当前目录开始搜索名为“file_name”的文件,并在下面搜索并打印具有该名称的文件。

find ~ -name ".DS_Store" -delete

这将找到所有 .DS_Store 文件并将其删除。

您可以按名称、正则表达式、日期进行搜索。您可以使用谓词以任何 Unix 方式对文件进行操作-exec

您还可以使用 find 作为更复杂的操作管道的开始。例如:

find . -type f -print | egrep -i '\.m4a$|\.mp3$'

将查找所有扩展名为 .m4a 或 .mp3 的文件

find . -type f -print | egrep -i '\.m4a$|\.mp3$' | wc -l

将为您提供这些文件的数量。

答案3

如果要搜索整个文件夹,只需在 grep 上使用 -r:

grep -r pattern folder/to/search

使用 find,您还可以使用 xargs:

find folder/to/search -name '*.txt' | xargs grep pattern

或者确保一次搜索两个文件并因此指定文件名:

find folder/to/search -name '*.txt' | xargs grep -n2 pattern

答案4

grep需要模式和文件规范。如果缺少一个,则使用传递的模式,并等待通过标准输入搜索数据。

如果你想使用更复杂的文件规范,那么使用find

find ~ -name '*.txt' -exec grep -q 'secret' {} \; -print

相关内容