Copie archivos y directorios sin contenido de archivos

18

¿Hay alguna manera de copiar la estructura de directorios con archivos pero sin sus contenidos? Quiero decir que quiero exactamente los mismos directorios con nombres de archivos pero dejándolos en blanco / vacíos. Tengo pocas aplicaciones de ejemplo en algún lenguaje de programación y quiero reescribirlas con mi propio estilo pero manteniendo la forma en que estaban organizadas en archivos.

Estaría agradecido por cualquier ayuda.

dagi12
fuente

Respuestas:

36

Desde man cp

- solo atributos no copia los datos del archivo, solo los atributos

Entonces, si desea copiar todas las carpetas y archivos que están en somedirectory

hacer cp -R --attributes-only somedirectory destinationdirectory

Sergiy Kolodyazhnyy
fuente
Esto es exactamente lo que necesito. Muchas gracias.
dagi12
44
+1 porque no pensé que alguien ya hubiera implementado esto, realmente sorprendido.
mgarciaisaia
@mgarciaisaia Me sorprendió mucho como usted, cuando revisé la página del manual esta mañana =)
Sergiy Kolodyazhnyy
10

Es bueno que Ubuntu cptenga esta característica, pero si te encuentras en una máquina que no (el estilo BSD cpno lo tiene, por ejemplo, OS X tampoco), es muy fácil hacerlo find. Aquí es como un trazador de líneas (para facilitar la lectura):

% cd original_dir
% find . -type d -exec mkdir -p ../copy_dir/{} \;
% find . -type f -exec touch ../copy_dir/{} \;

Si copy_dirya existe, puede omitir el -pargumento mkdirya findque atravesará el árbol del directorio de arriba hacia abajo. Para trabajos grandes, puede reducir otro milisegundo más o menos terminando los comandos con en +lugar de \;si lo findadmite (probablemente lo haga).

Editar: los comandos anteriores no se ocuparon de manejar enlaces simbólicos, que se pueden copiar con una tercera ejecución defind ( no termine este con +):

% find . -type l -exec cp -R {} ../copy_dir/{} \;
alexis
fuente