在 Mac OS X 和 Linux 上是否有更简单的 find . -name "*substring_of_filename*" 形式?

在 Mac OS X 和 Linux 上是否有更简单的 find . -name "*substring_of_filename*" 形式?

在 Mac OS X 或 Linux 上,是否有更简单的命令形式

find . -name "*substring_of_filename*"

即查找substring_of_filename当前目录(或其他给定目录)中名称包含的所有文件。因为这是一件常见的事情,有没有办法让命令更短、更容易输入,可能使用 Bash 中的别名或函数?或者还有其他一些易于输入的命令可以使用?

例如:

findfile . substring_of_filename

注意:问题最初写成时使用了应用程序配置作为示例文件名的子字符串。

答案1

在 Mac OS X 上,你也可以将别名放入mdfind.bashrc 中:

# mdfind uses Spotlight 
alias findf='mdfind -onlyin . -name'

findf app_config

答案2

这是你的 bash 函数,将其放入.bashrc

function findfiles { find "$1" -iname "*$2*"; }

(请注意,这-iname会使搜索不区分大小写。如果您不想要这样,请使用-name。)

答案3

恰恰相反!还有一个更复杂但有效的方法:

find . -name "*app_config*"

对于 gnu-find 来说,点不是必需的:

find -name "*app_config*"

但是你必须屏蔽星号,否则它们将被 shell 解释,并且你只能找到与当前目录中匹配的文件名,即与“应用程序配置“。

答案4

我没有在 bash、zsh、tcsh、sh 等脚本中执行此操作...而是编写了一个文本扩展器快捷方式。我输入 sh≤Space≥ 并且 TE 类型

查找 .-iname "**"

并将光标放在星号之间。

相关内容