案例:
[LeonHughes@localhost:Download]$find . -maxdepth 1 -name 'g*'
./garnome-2.24.0
./gradetwo-fetion-e8224ae911604229f65f19230745723867baccc3.tar.gz
[LeonHughes@localhost:Download]$find . -name 'g*' -maxdepth 1
find: warning: you have specified the -maxdepth option after a non-option argument -name, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
./garnome-2.24.0
./gradetwo-fetion-e8224ae911604229f65f19230745723867baccc3.tar.gz
原因:
GNU/Linux命令行习惯
几乎所有的GNU/Linux程序都遵循一些同样的命令行解释习惯,程序的参数通常分为了两大类:选项(option)和non-option参数。选项(option)主要是提供给程序一些运行上的选择,起码限制约束作用;而non-option参数则通常是提供给程序运行的输入之类的值。
find [-H] [-L] [-P] [path...] [expression],其中expression又分为options,tests和actions。-maxdepth属于expressions中的options,而-name属于exprestions中的tests。
这就是上面第二个命令出现warning的原因。
option都是放在non-option之前的,如:
nl [OPTION]... [FILE]...
which [options] [--] programname [...]