recursivo - copiar archivos en linux
LINUX enumera recursivamente todos los archivos en un directorio, incluidos los archivos en los directorios de enlace simbólico (7)
¿Qué hay de tree ? tree -l
seguirá los enlaces simbólicos.
Descargo de responsabilidad : escribí este paquete.
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 enumerar todos los archivos en dir
incluidos los de dir11
, dir12
y dir13
.
Para ser más genérico, quiero enumerar todos los archivos, incluidos los que están en los directorios que son enlaces simbólicos. find .
, ls -R
, etc. se detienen en el enlace simbólico sin navegar hacia ellos para listar más.
La opción -L
para ls
logrará lo que desea. Desreferencia enlaces simbólicos.
Entonces tu comando sería:
ls -LR
También puedes lograr esto con
find -follow
La opción -follow
dirige el hallazgo para seguir los enlaces simbólicos a los directorios.
En Mac OS X use
find -L
as -follow
ha quedado obsoleto.
Sabía que tree
era apropiado, pero no tenía el árbol instalado. Entonces, tengo una alternativa bastante cercana here
find ./ | sed -e ''s/[^-][^//]*///--/g;s/--/ |-/''
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 bien, utilizando find:
find -L .
De la página de búsqueda:
-L Follow symbolic links.
Si encuentra que solo quiere seguir unos pocos enlaces simbólicos (como quizás solo los más importantes que mencionó), debería mirar la opción -H, que solo sigue los enlaces simbólicos que le pasa en la línea de comandos.
find -L /var/www/ -type l
# man find
-L Follow symbolic links. When find examines or prints information about files, the information used shall be taken from the
propiedades del archivo al que apunta el enlace, no desde el enlace en sí (a menos que se trate de un enlace simbólico roto o el descubrimiento no puede examinar el archivo al que apunta el enlace). El uso de esta opción implica -noleaf. Si luego usa la opción -P, -noleaf aún estará en efecto. Si -L está en efecto y find descubre un enlace simbólico a un subdirectorio durante su búsqueda, se buscará el subdirectorio al que apunta el enlace simbólico.
find /dir -type f -follow -print
-type f
significa que mostrará archivos reales (no enlaces simbólicos)
-follow
significa que seguirá sus enlaces simbólicos de directorio
-print
hará que muestre los nombres de los archivos.
Si quieres una pantalla tipo ls, puedes hacer lo siguiente
find /dir -type f -follow -print|xargs ls -l
ls -R -L
-L
desreferencia enlaces simbólicos. Sin embargo, esto también hará que sea imposible ver cualquier enlace simbólico a los archivos, se verán como el archivo apuntado.