Rationale localizar a exibição do comando. diretório

2

Eu estou querendo saber qual é a razão ou a razão para o comando find listar o diretório atual (.) em alguns momentos, mas não em outros.

Quando uso ".", vejo o diretório atual no diretório externo, mas não no diretório interno.

$ pwd
/home/me/a

$ find . -exec echo  {} \;
.
./abc.txt
./a.txt
./d
./d/da.txt

Quando eu dou o diretório específico, não vejo o diretório atual.

$ find /home/me/a  -exec echo  {} \;
/home/me/a
/home/me/a/abc.txt
/home/me/a/a.txt
/home/me/a/d
/home/me/a/d/da.txt

Aqui está como eu vejo a situação.

$ ls -lR
.:
total 4.0K
-rw-r--r--. 1 me    0 Oct 20 19:03 abc.txt
-rw-r--r--. 1 me    0 Oct 21 14:56 a.txt
drwxr-xr-x. 2 me 4.0K Oct 21 14:57 d/

./d:
total 0
-rw-r--r--. 1 me 0 Oct 21 14:57 da.txt
    
por historystamp 21.10.2013 / 21:16

2 respostas

5

O ponto que está sendo exibido na saída de find é apenas o local atual, conforme especificado com o comando find . . O mesmo acontece quando diz find /home/me/a . Em ambos os casos, o find mostra o diretório no qual você está pesquisando (conforme especificado) e os arquivos e diretórios correspondentes que o find encontra nesse local.

Exemplos

diretório que procuramos é .

$ find . ....
.
./abc.txt
./a.txt

Find mostra os resultados em termos do argumento que você especificou, por exemplo, . .

diretório que procuramos é /home/me/a

$ find /home/me/a ....
/home/me/a
/home/me/a/abc.txt
/home/me/a/a.txt

Novamente find mostra os resultados em termos do argumento que você especificou, /home/me/a .

Terminologia

Tente não pensar neles em termos internos ou externos, pense na especificação como relativa ou absoluta. Relativo é . e absoluto é /home/me/a . Em qualquer um dos casos, find não se importa, apenas mostra os diretórios e arquivos encontrados a partir daquele local.

    
por 21.10.2013 / 21:37
1

O uso do diretório relativo ( find . ) produz resultados esperados de ./abc.txt , enquanto find /home/ma/a/abc.txt é idêntico, mas absoluto. Você não esperaria ver . ao usar caminhos absolutos.

Os resultados são idênticos porque você pode tecnicamente "encontrar e substituir" o . com /home/me/a e vice-versa.

    
por 21.10.2013 / 21:36

Tags