
Tengo un árbol de directorios grande con muchos archivos.
Me gustaría volver a crear la estructura de directorios en una nueva ubicación, pero sólo los directorios, no los archivos.
Revisé cp
la página de manual de , pero no veo ningún argumento que ayude.
Respuesta1
rsync -av -f"+ */" -f"- *" /.../SOURCE /.../DESTINATION
Respuesta2
find . -type d -exec mkdir -p ~/to/{} \;
Tomado de la respuesta de @whitequark a esta pregunta:Copie la estructura de directorios sin copiar archivos, en Mac OS X
Respuesta3
Otro enfoque es utilizar el tree
cual es bastante útil y navegar por los árboles de directorios en función de sus sólidas opciones. Hay opciones para solo directorio, excluir directorios vacíos, excluir nombres con patrón, incluir solo nombres con patrón, etc. Consulteman tree
Ventaja: puede editar o revisar la lista, o si realiza muchas secuencias de comandos y crea un lote de directorios vacíos con frecuencia
Acercarse: cree una lista de directorios usando tree
, use esa lista como entrada de argumentos paramkdir
tree -dfi --noreport > some_dir_file.txt
-dfi
enumera solo directorios, imprime la ruta completa para cada nombre, hace que el árbol no imprima las líneas de sangría,
--noreport
Omite la impresión del informe de archivos y directorios al final del listado del árbol, solo para que el archivo de salida no contenga ninguna tontería.
Luego vaya al destino donde desea los directorios vacíos y ejecute
xargs mkdir < some_dir_file.txt
Respuesta4
Encontré esto porque satisfizo una necesidad similar. Con una versión suficientemente nueva de rsync, esa es tu mejor opción.
Si no tienes una versión reciente de rsync, esto es suficiente:
find path/to/source -type -d -exec mkdir path/to/dest/'{}' \; -exec chown --reference='{}' path/to/dest/'{}' \; -exec chmod --reference='{}' path/to/dest/'{}' \;
(Se puede utilizar una variante de esto para la duplicación de permisos)