Vamos supor que tenhamos file1
no diretório atual. Então:
$ find . -maxdepth 0 -name "file1"
$ find . file1 -maxdepth 0 -name "file1"
file1
Agora, vamos ver o que a documentação diz:
-maxdepth 0 means only apply the tests and actions to the command line arguments.
No meu primeiro exemplo acima, apenas o diretório .
está listado na linha de comando. Como .
não tem o nome file1
, nada é listado na saída. No meu segundo exemplo acima, .
e file1
estão listados na linha de comando e, como file1
corresponde a -name "file1"
, ele retornou na saída
Em outras palavras, -maxdepth 0
significa não procura diretórios ou subdiretórios. Em vez disso, procure apenas um arquivo correspondente entre os explicitamente listados na linha de comando.
Nos seus exemplos, apenas os diretórios foram listados na linha de comando e nenhum deles foi nomeado file1
. Portanto, não há saída.
Em geral, muitos arquivos e diretórios podem ser nomeados na linha de comando. Por exemplo, aqui tentamos um comando find
com 11 arquivos e diretórios na linha de comando:
$ ls
d1 file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
$ find d1 file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 -maxdepth 0 -name "file1"
file1
caminhos sobrepostos
Considere:
$ find . file1 -maxdepth 0 -iname file1
file1
$ find . file1 file1 -maxdepth 0 -iname file1
file1
file1
$ find . file1 file1 -maxdepth 1 -iname file1
./file1
file1
file1
Aparentemente, como Ramesh aponta, find
seguirá cada caminho especificado na linha de comando e procurará correspondências, mesmo se os caminhos levarem ao mesmo arquivo, como em . file
ou mesmo se os caminhos forem duplicatas exatas, como em file1 file1
.