查找命令:如何忽略大小写?

Nic*_*oul 221 find

我正在一个巨大的目录层次结构中寻找文件“WSFY321.c”。
通常我会使用GNU findfind . -name "WSFY321.c"
但我不知道大小写,它可能是大写、小写或两者的混合。

找到此文件的最简单方法是什么?
有比 更好的find . | grep -i "WSFY321.c"吗?

Lar*_*ach 290

最新版本的 GNUfind有一个-iname标志,用于不区分大小写的名称搜索。

find . -iname "WSFY321.c"
Run Code Online (Sandbox Code Playgroud)

  • 此外,由于您正在专门寻找一个文件,您可以*可能* 使用 `-type f` 标志将它刮掉另外几个刻度,这样如果 inode 是一个目录,它就不会费心查看名称。但这是迂腐的优化水平...... (7认同)

Gil*_*il' 48

使用 GNU find 或其他具有它的 find 版本:

find . -iname 'WSFY321.c'
Run Code Online (Sandbox Code Playgroud)

与其他版本:

find . -name '[Ww][Ss][Ff][Yy]321.[Cc]'
Run Code Online (Sandbox Code Playgroud)

或者更慢但更容易输入的妥协:

find . -name '????321.c' | grep -i '/WSFY[^/]*$'
Run Code Online (Sandbox Code Playgroud)

或者在 zsh 中:

print -rl -- **/(#i)WSFY321.c
Run Code Online (Sandbox Code Playgroud)

  • @Bernhard 一致性。 (6认同)