【Linux】find 命令查找多文件

问题背景

在工作中有这么一个需求,就是我们要去查找所有的 md 文件,然后删掉,于是我是这样写的 rm $(find floder -name *.md)

但是这样会提示一个错误,find: paths must precede expression。好吧,看来我们写错了,于是,我又踏上了寻错之旅。

解决方案

解决方案是: rm $(find folder -name '*.md')

why?

经过 Google、百度,找到了解决方案,写个小例子大家其实就都懂了。

我们先创建几个 md 文件:

$ touch {1,2,3,4,5}.md
1

好了,我们现在有 5 个文件了,现在我们输入以下命令:

$ echo '*'
$ echo *
$ echo \*
1
2
3

大家猜猜结果是什么?好吧其实很简单,结果是:

*
1.md 2.md 3.md 4.md 5.md
*
1
2
3

所以我们看到了,如果我们用 _.md 去匹配其实 _ 就不是 _ 了,我们不需要 _ 展开,所以我们要加上引号或者是 *,教训就是大家别偷懒啊,该写引号还得写。

Last Updated: 8/19/2019, 10:14:18 AM