解决find: paths must precede expression

https://blog.slogra.com/post-600.html

今天在服务器上执行find ./ -mtime +30 -type f -name .php的时候,报下面的错误:
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]
然后就上网查了一下,结果搜索到一篇,大概是这样说的:多文件的查找的时候需要增加单引号,一直是使用的双引号,没想到找多文件的时候居然要单引号.好吧,又学了一招,修改后:
find ./ -mtime +30 -type f -name '
.php'
这样执行后就没有再报错了,一个小问题得到解决.
例子说明:

进入tmp目录新建4个文本文件

cd /tmp

touch {1,2,3,4}.txt

find . -name *.txt

find: paths must precede expression: 2.txt

出现这个提示是因为星号被展开为当前目录下所有的文件,这样的匹配当然会出错。看这个就知道了:

echo *

1.txt 2.txt 3.txt 4.txt

echo '*'

echo *

想要星号不被展开就需要加上括号或者反斜杠转义,知道了这些我们就知道该怎么find了

find . -name '*.txt'

find . -name '*.txt'
./4.txt
./2.txt
./3.txt
./1.txt

或者使用反斜杠

find . -name *.txt
./4.txt
./2.txt
./3.txt
./1.txt

好了,就这样吧.

推荐阅读更多精彩内容

  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 7,064评论 1 16
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 3,635评论 0 11
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 128,910评论 18 137
  • 一、基础语法: 1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文...
    蒋_Sir阅读 7,950评论 1 4
  • 穷查理宝典 60分钟 482-491页,继续学习,速度有点慢,自己都捉急 学习经典,被经典的价格惊艳,被经典的智慧震撼
    GeneLong阅读 72评论 0 0
  • 当狼叔剩最后一口气时,他手握着劳拉的手: 嘿,劳拉,劳拉,记着……永远不要成为他们所希望你成为的那种人…… 这句话...
    阿颖sxcw阅读 4,768评论 2 24
  • 可能是寂寞空气变得很稀薄满城霓虹开出荒漠…… 休息时,听一群人在一起低声而动情的唱这首老歌,那种氛围会让我感觉生活...
    围炉野话阅读 267评论 0 1
  • 他不爱我,牵手的时候太冷清,拥抱的时候不够靠近,他不爱我,说话的时候不够认真,沉默的时候又用心,我知道他不爱我,他...
    呀是本姑娘阅读 470评论 0 1