在 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 "**"
并将光标放在星号之间。