Supongamos que tengo un directorio /dir
dentro del cual hay 3 enlaces simbólicos a otros directorios
/dir/dir11
, /dir/dir12
, y /dir/dir13
. Quiero listar todos los ficheros de dir
incluyendo los de dir11
, dir12
y dir13
.
Para ser más genérico, quiero listar todos los ficheros incluyendo los de los directorios que son enlaces simbólicos. Los programas find .
, ls -R
, etc. se detienen en el enlace simbólico sin navegar dentro de ellos para listar más.
La opción -L
de ls
logrará lo que usted desea. Desertifica los enlaces simbólicos.
Así que su comando sería:
ls -LR
También puede lograr esto con
find -follow
La opción -follow
hace que find siga los enlaces simbólicos a los directorios.
En Mac OS X utilice
find -L
ya que follow
ha quedado obsoleto.
find /dir -type f -follow -print
-type f
significa que mostrará archivos reales (no enlaces simbólicos)
-follow
significa que seguirá los enlaces simbólicos de su directorio
-print
hará que muestre los nombres de los archivos.
Si quieres una visualización del tipo ls, puedes hacer lo siguiente
find /dir -type f -follow -print|xargs ls -l
Usando ls:
ls -LR
de 'man ls':
-L, --dereference
when showing file information for a symbolic link, show informa‐
tion for the file the link references rather than for the link
itself
O, usando find:
find -L .
Desde la página man de find:
-L Follow symbolic links.
Si quiere seguir sólo unos pocos enlaces simbólicos (tal vez sólo los de nivel superior que ha mencionado), debería considerar la opción -H, que sólo sigue los enlaces simbólicos que le pase en la línea de comandos.