find não dá resposta esperada

1

Como isso é possível:

$ find ACCESS -name arctic20.xml

não fornece saída, mas:

$ ls -l ACCESS/arctic20.xml

dá:

-rw-rw-r-- 1 damocles damocles 2286 Nov  2  2016 ACCESS/arctic20.xml

Eu verifiquei o nome do arquivo em busca de caracteres invisíveis, mas não encontrei nada:

$ ls -1 ACCESS/arctic20.xml | od -c
0000000   A   C   C   E   S   S   /   a   r   c   t   i   c   2   0   .
0000020   x   m   l  \n
0000024

Este é o meu sistema:

$ uname -a
Linux adc-a 3.13.0-115-generic #162-Ubuntu SMP Fri Mar 24 16:03:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    
por Egil Støren 27.07.2017 / 11:20

1 resposta

1

Por padrão, o GNU find não segue links simbólicos, nem mesmo considerando os argumentos da linha de comando. De man find :

  

As opções -H , -L e -P controlam o tratamento de links simbólicos. Argumentos de linha de comando após esses são considerados nomes de arquivos ou diretórios a serem examinados, até o primeiro argumento que começa com '-' ou o argumento '(' ou '!' .

     

-P Nunca siga links simbólicos. Este é o comportamento padrão. Quando encontrar examina ou imprime informações em um arquivo, e o arquivo é um link simbólico, as informações usadas devem ser obtidas das propriedades do próprio link simbólico.

Se ACCESS é (ou pode ser) um link simbólico para um diretório e você deseja encontrar arquivos dentro, mesmo que seja um link simbólico, você deve dizer find -H ACCESS .

    
por AlexP 11.08.2017 / 23:51