Copia file e directory senza contenuto file


18

C'è un modo per copiare la struttura delle directory con i file ma senza il loro contenuto. Voglio dire che voglio esattamente le stesse directory con i nomi dei file ma lasciandole vuote / vuote. Ho alcune applicazioni di esempio in alcuni linguaggi di programmazione e voglio riscriverle con il mio stile, ma mantenendo il modo in cui sono state organizzate in file.

Le sarei grato per qualsiasi aiuto.

Risposte:


36

A partire dal man cp

--attributes-only non copia i dati del file, ma solo gli attributi

Quindi, se si desidera copiare tutte le cartelle e i file che si trovano somedirectory

fare cp -R --attributes-only somedirectory destinationdirectory


Questo è esattamente ciò di cui ho bisogno. Grazie mille.
dagi12,

4
+1 perché non pensavo che qualcuno lo avesse già implementato, davvero sorpreso.
Margarciaisaia,

@mgarciaisaia Sono rimasta sorpresa da te, quando ho controllato la pagina man stamattina =)
Sergiy Kolodyazhnyy,

10

Bello che Ubuntu cpabbia questa funzionalità, ma se dovresti trovarti su una macchina che non lo fa (lo stile BSD cp, ad esempio, non lo fa nemmeno OS X), è molto facile farlo find. Ecco come un doppio (per leggibilità):

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

Se copy_diresiste già, puoi saltare l' -pargomento in mkdirquanto findattraverserà l'albero delle directory dall'alto verso il basso. Per lavori di grandi dimensioni, è possibile radere un altro millisecondo circa terminando i comandi +invece che \;se findlo supporta (probabilmente lo fa).

Modifica: i comandi precedenti sono stati trascurati per gestire i collegamenti simbolici, che possono essere copiati con una terza esecuzione di find( non terminare questa con +):

% find . -type l -exec cp -R {} ../copy_dir/{} \;
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.