2010-08-23 17 views
15

Ho una struttura di directory e file come questoRsync come includere le directory ma non i file?

data/ 
data/a.txt 
data/folder/ 
data/folder/b.txt 
data/folder/folder/ 
data/folder/folder/c.txt 
... 

a.txt, b.txt, e c.txt sono file di grandi dimensioni che sono generate al computer e rinnovato di frequente. Non dovrebbero essere backuped - ma voglio fare il backup della struttura di directory:

data/ 
data/folder/ 
data/folder/folder/ 

Come posso fare questo con rsync e --exclude-da, senza specificare tutte le cartelle, ma qualcosa di simile rsync -a data/* --exclude-from=exclude.rsync "" --onlyfoldersandnotfiles""?

Grazie per l'aiuto!

+0

Voglio eseguire il backup dell'intero server. Sul mio server ci sono 80 GO di dati, ma 60 GO vengono rinnovati ogni giorno e questi 60 GO sono file in molte sottodirectory. Se non faccio il backup della struttura delle directory, i miei script che rinnovano i file falliscono perché si aspettano che esistano le directory. Quello che voglio è un singolo rsync ed exclude.rsync per fare il backup del mio server! – chicama

risposta

21
$ rsync -a -f"+ */" -f"- *" source/ destination/ 

"I due argomenti -f significano, rispettivamente," copia tutte le directory "e quindi" non copiare altro "."

Ulteriori dettagli: http://psung.blogspot.com/2008/05/copying-directory-trees-with-rsync.html

+0

Una soluzione davvero geniale. Molto più semplice della combinazione di '--include' e' --exclude' per l'uso di base. –

+19

IMHO questo è molto più leggibile: 'rsync -a --include = '* /' --exclude = '*' source/destination /' –

8
rsync -a --include='*/' --exclude='*' source/ destination/ 

In sostanza, prima comprende tutte le directory, quindi escludere tutti i file.

Problemi correlati