Copia file e directory senza contenuto di file

18

C'è un modo per copiare la struttura delle directory con i file ma senza i loro contenuti. Voglio dire che voglio esattamente le stesse directory con i nomi dei file ma lasciandoli vuoti / vuoti. Ho alcune applicazioni di esempio in alcuni linguaggi di programmazione e voglio riscriverli con il mio stile ma mantenendo il modo in cui sono organizzati in file.

Sarei grato per qualsiasi aiuto.

    
posta dagi12 15.05.2015 - 18:05

2 risposte

36

Da man cp

  

- attributi di sola                 non copiare i dati del file, solo gli attributi

Quindi, se vuoi copiare tutte le cartelle e i file che sono in somedirectory

fai cp -R --attributes-only somedirectory destinationdirectory

    
risposta data Sergiy Kolodyazhnyy 15.05.2015 - 18:12
10

Bello che Ubuntu cp ha questa funzione, ma se dovessi trovarti su una macchina che non lo fa (BSD-style cp no, per esempio, quindi OS X non lo fa), è molto facile fare con find . Qui è come un doppio rivestimento (per la leggibilità):

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

Se copy_dir esiste già, puoi saltare l'argomento -p a mkdir poiché find attraverserà l'albero delle directory dall'alto verso il basso. Per lavori di grandi dimensioni, puoi radere di nuovo un altro millisecondo terminando i comandi con + anziché \; se il tuo find lo supporta (probabilmente lo fa).

Modifica: i comandi precedenti non sono stati in grado di gestire i collegamenti simbolici, che possono essere copiati con una terza esecuzione di find ( non termina questo con + ):

% find . -type l -exec cp -R {} ../copy_dir/{} \;
    
risposta data alexis 15.05.2015 - 23:14

Leggi altre domande sui tag