encontra uso com -L

28

Eu tenho

link -> file

eu faço

find -L . -name 'link'

E obtenha

./link

Por que isso?

homem encontra diz:

-L: Siga os links simbólicos. Quando encontrar, examina ou imprime informações sobre os arquivos, a informação usada deve ser               tomadas das propriedades do arquivo para o qual o link aponta, não do próprio link (a menos que seja um broma               ken link simbólico ou encontrar é incapaz de examinar o arquivo para o qual o link aponta).

    
por abc 07.02.2012 / 19:30

2 respostas

9

Com -L , examina as propriedades do arquivo - conteúdo ou metadados, não os do link. Por exemplo. Se você usar -atime , ele verificará o atime do arquivo, não o link:

$ find testdir/ -name link -newer testdir/ref
testdir/link
$ find -L testdir/ -name link -newer testdir/ref
$

testdir/link foi criado depois de testdir/ref , mas o arquivo para o qual apontou não foi.

    
por 07.02.2012 / 19:56
31

A regra geral é que, se um comando opera em links (ou seja, entradas de diretório, que são ponteiros para inodes), o comando trata os links simbólicos como eles próprios, e não como o objeto para o qual o link aponta. Caso contrário, o comando opera no que o link simbólico aponta. Portanto cp segue os links simbólicos e copia o conteúdo do arquivo apontado pelo link. Mas quando você solicita que cp lide com as entradas de diretório especificando -R , ele pára de seguir os links simbólicos. mv sempre trabalha com entradas de diretório e, portanto, nunca segue links simbólicos.

A atividade normal do comando find é operar em entradas de diretório, portanto os links simbólicos não são seguidos pelo padrão. Adicionar -L faz com que find siga links simbólicos para todas as propriedades exceto aquela que não pode ser ignorada ao fazer a pesquisa de diretório, o nome. Um dos propósitos de find -name é fornecer entrada para comandos como mv e rm , que operam nas entradas de diretório. Haveria resultados desagradáveis e surpreendentes se find -L dir -name pudesse produzir nomes que apontassem para fora da árvore de diretórios com raiz em dir .

    
por 07.02.2012 / 20:37

Tags