Ubuntu 13.04:查找以。结尾的文件

时间:2013-10-06 21:42:45

标签: linux find

有人可以告诉我,我是如何滥用发现的吗?

我想查找目录中以.config结尾的所有文件。

$:~/esrc$ find . -type f
./t.config
./util/ebin/config.beam
./util/ebin/gen_spec.beam
./util/etc/util.config
./util/etc/v.config
./util/src/config.erl
./util/src/gen_spec.erl
./util/src/v.config
./util/u.config

我的第一个想法是使用find。 -type f -name * .config

不幸的是,它只在根目录中找到了一个文件。

$:~/esrc$ find . -type f -name *.config
./t.config

同样的命令可以找到所有* .erl文件,但是......

$:~/esrc$ find . -type f -name *.erl
./util/src/config.erl
./util/src/gen_spec.erl

为什么这适用于* .erl而不是* .config?

的任何线索

感谢。

2 个答案:

答案 0 :(得分:3)

引用外卡,即

find . -type f -name '*.config'

答案 1 :(得分:1)

这里的混淆是通配符(*字符)由 shell 解释之前它是find命令。要解决这个问题,你需要逃避它:

find . -type f -name \*.config

通过使用\来转义*,shell会将*传递给find命令。

例如,如果当前目录中有一个名为foo.config的文件,shell会将通配符展开到foo.config并将其传递给find,所以从find命令的角度看结果命令是:

find . -type f -name foo.config