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
.