Tenho um grande conjunto de diretórios e arquivos, junto com muitos links simbólicos que normalmente apontam para um diretório chamado "compartilhado" ou para um diretório ou arquivo abaixo do diretório "compartilhado".
Aqui está uma representação:
$ ls -lR
total 0
drwxr-xr-x 5 myself staff 160 Oct 11 11:54 a
drwxr-xr-x 5 myself staff 160 Oct 11 11:55 b
./a:
total 0
lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 a2 -> a1
lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 a3 -> a2
lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 a4 -> a3
./b:
total 0
lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 b1 -> b2
lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 b2 -> b3
lrwxr-xr-x 1 myself staff 2 Oct 11 11:55 b3 -> b4
Se eu find -type l
listar os links simbólicos, obtenho esta longa saída:
$ find . -type l -ls
14800041 0 lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 ./a/a4 -> a3
14800032 0 lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 ./a/a3 -> a2
14799990 0 lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 ./a/a2 -> a1
14800060 0 lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 ./b/b2 -> b3
14800061 0 lrwxr-xr-x 1 myself staff 2 Oct 11 11:55 ./b/b3 -> b4
14800046 0 lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 ./b/b1 -> b2
Se eu fizer uma listagem recursiva com ls -lR
, obtenho uma saída semelhante.
Só preciso dos dois bits na minha saída - o nome do symlink e para onde ele aponta, separados por ->
. Como posso obter essa saída sem ter que usar filtros para analisar ls
ou find
gerar?