在工作中有这么一个需求,就是我们要去查找所有的 md 文件,然后删掉,于是我是这样写的 rm $(find floder -name *.md)
。
但是这样会提示一个错误,find: paths must precede expression
。好吧,看来我们写错了,于是,我又踏上了寻错之旅。
解决方案是: rm $(find folder -name '*.md')
。
经过 Google、百度,找到了解决方案,写个小例子大家其实就都懂了。
我们先创建几个 md 文件:
$ touch {1,2,3,4,5}.md
好了,我们现在有 5 个文件了,现在我们输入以下命令:
$ echo '*'
$ echo *
$ echo \*
大家猜猜结果是什么?好吧其实很简单,结果是:
*
1.md 2.md 3.md 4.md 5.md
*
所以我们看到了,如果我们用 *.md 去匹配其实 * 就不是 * 了,我们不需要 * 展开,所以我们要加上引号或者是 *,教训就是大家别偷懒啊,该写引号还得写。