find [path] [expressions]
Um nome de arquivo não é uma expressão.
A ação padrão é imprimir.
Para o caminho, ".." é melhor que "../." você quase nunca precisa incluir "." a menos que esteja no início de um caminho relativo.
Realizando uma pesquisa a partir do diretório atual onde este arquivo reside, este comando find localiza o arquivo.
# find . page.tpl.php
No entanto, quando eu procuro de um diretório filho, este comando,
# find ../. page.tpl.php
imprime a lista de arquivos, COM o arquivo solicitado listado na saída,
.././parent_dir/page.tpl.php
No entanto, os resultados são
find: 'page.tpl.php': No such file or directory
Então, quando eu adiciono o argumento -name, funciona
# find ../. -name page.tpl.php
Eu simplesmente esqueço de usar argumentos algumas vezes e o falso negativo é realmente agravante. O que está acontecendo?
find [path] [expressions]
Um nome de arquivo não é uma expressão.
A ação padrão é imprimir.
Para o caminho, ".." é melhor que "../." você quase nunca precisa incluir "." a menos que esteja no início de um caminho relativo.
O comando localiza usos:
encontrar [-H] [-L] [-P] [caminho ...] [expressão]
Seu primeiro exemplo foi:
find ../. page.tpl.php
O que você fez foi encontrar dois caminhos de pesquisa. Como a expressão padrão é print, o conteúdo dos dois caminhos foi impresso para stdout.
Considere isso:
mkdir a b c
touch a/file1 a/file2 b/SANTACLAUS c/MONKEYS
find a b
$ find a b
a
a/file2
a/file1
b
b/SANTACLAUS
Seu segundo exemplo foi:
.././parent_dir/page.tpl.php
Aqui você forneceu um caminho de pesquisa. O erro informa que page.tpl.php não foi encontrado no CWD. Eu suponho que isso foi devido a sua não ter o arquivo 'page.tpl.php' no diretório 'parent_dir'.
Tags command-line find linux unix