返回列表 发帖

find: paths must precede expression

直接举个例子说明吧:
  1. # 进入tmp目录新建4个文本文件
  2. # cd /tmp
  3. # touch {1,2,3,4}.txt
  4. # find . -name *.txt
  5. find: paths must precede expression: 2.txt
复制代码
出现这个提示是因为星号被展开为当前目录下所有的文件,这样的匹配当然会出错。看这个就知道了:
  1. # echo *
  2. 1.txt 2.txt 3.txt 4.txt
  3. # echo '*'
  4. *
  5. # echo \*
  6. *
复制代码
想要星号不被展开就需要加上括号或者反斜杠转义,知道了这些我们就知道该怎么find了
  1. # find . -name '*.txt'
  2. find . -name '*.txt'
  3. ./4.txt
  4. ./2.txt
  5. ./3.txt
  6. ./1.txt
  7. #或者使用反斜杠
  8. find . -name \*.txt
  9. ./4.txt
  10. ./2.txt
  11. ./3.txt
  12. ./1.txt
复制代码

返回列表