Com o "conteúdo dos links", assumo que você quer dizer "alvo do link". Se isso é correto, então sim, existe. Tipo de. E você tem que obter creatie com redirecionamento de shell:)
diff -u \
<(cd /path/to/dir1 && find . -type l -exec stat '{}' '+' | grep 'File:' | sort) \
<(cd /path/to/dir2 && find . -type l -exec stat '{}' '+' | grep 'File:' | sort)
O que isto faz é executar diff
com como entrada a saída de dois comandos:
cd /path/to/dir1 && find . -type l -exec stat '{}' '+' | grep 'File:' | sort
cd /path/to/dir2 && find . -type l -exec stat '{}' '+' | grep 'File:' | sort
Esses comandos find | grep | sort
exibem o nome e o destino de todos os links simbólicos que ele pode encontrar em dir1 e dir2, junto com seus destinos. Portanto, o resultado final é que você verá quais links simbólicos são diferentes.
(Editado a partir da resposta original, que incluía o caminho completo para o nome do arquivo na saída de ls
e, portanto, mostrava cada arquivo como diferente. Trabalhou com isso usando cd
. Além disso, se os links simbólicos tivessem diferentes datas e horas, o diff iria mostrá-los como diferentes também. Trabalhou em torno disso usando stat
para extrair as informações que realmente queremos.)