2012-08-14 39 views
10

Tengo una enorme estructura de directorios de archivos de película. Para el análisis de esa estructura, quiero copiar toda la estructura de directorios, es decir, carpetas y archivos; sin embargo, no quiero copiar todos los archivos de películas mientras quiero mantener los nombres de los archivos. Idealmente obtengo archivos de cero bytes con el nombre original del archivo de película.copiar una estructura de directorios con nombres de archivos sin contenido

Intenté y luego rsync a mi máquina remota que no buscó los archivos de enlace.

¿Alguna idea de cómo hacer eso sin escribir scripts?

Respuesta

12

Puede utilizar Buscar:

find src/ -type d -exec mkdir -p dest/{} \; \ 
     -o -type f -exec touch dest/{} \; 

directorio Find (-d) en (src/) y crear (mkdir -p) bajo dest/ o (-o) encontrar archivos (-f) y touch bajo dest/.

Esto dará como resultado:

dest/src/<file-structre> 

Puede usuario mv creativa para resolver este problema.


otra solución (parcial) puede lograrse con rsync:

rsync -a --filter="-! */" sorce_dir/ target_dir/ 

El truco aquí es el --filter=RULE opción que excluye (-) todo lo que no es (!) un directorio (*/)

8

en Ubuntu que puede probar:

cp -r --attributes-only <source_dir> <target_dir> 

No copia los datos del archivo. De página de manual de cp

--attributes-only 
      don't copy the file data, just the attributes 

Nota: No estoy seguro de que esta opción disponible para otras distribuciones, si alguien puede confirmar por favor, actualice la respuesta.

+0

Gracias por la respuesta Rohan, desafortunadamente mi Debian en ReadyNAS de Netgear no sabrá esta opción :( –

+0

Esto no funciona en OS X; ¿Alguien sabe de una solución que hace? – spinningarrow

+0

mejor forma de hacerlo en Linux normal! – Enerccio

-2

ls> listOfMovie.txt; Tendrás la lista de tus películas en un archivo .txt . Para múltiples directorios, ve la página man.

Cuestiones relacionadas