Puoi avere più opzioni di esclusione per tar so
$ tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .
ecc funzionerà. Assicurati certo per inserire --exclude
prima gli elementi di origine e di destinazione.
vecchia domanda con molte risposte, ma ho scoperto che nessuna era abbastanza chiara per me, quindi vorrei aggiungere il mio tentativo.
se hai la seguente struttura
/home/ftp/mysite/
con i seguenti file/cartelle
/home/ftp/mysite/file1
/home/ftp/mysite/file2
/home/ftp/mysite/file3
/home/ftp/mysite/folder1
/home/ftp/mysite/folder2
/home/ftp/mysite/folder3
quindi, vuoi creare un file tar che contenga tutto all'interno di /home/ftp/mysite (per spostare il sito su un nuovo server), ma file3
è solo spazzatura, e tutto in folder3
inoltre non è necessario, quindi salteremo quei due.
usiamo il formato
tar -czvf <name of tar file> <what to tar> <any excludes>
dove c =create, z =zip e v =verbose (puoi vedere i file mentre vengono inseriti, utile per assicurarti che nessuno dei file che escludi venga aggiunto). e f=file.
quindi, il mio comando sarebbe simile a questo
cd /home/ftp/
tar -czvf mysite.tar.gz mysite --exclude='file3' --exclude='folder3'
nota che i file/cartelle esclusi sono relativamente alla radice del tuo tar (ho provato qui il percorso completo relativo a / ma non riesco a farlo funzionare).
spero che questo aiuti qualcuno (e me la prossima volta che lo cerco su Google)
Possibili opzioni per escludere file/directory dal backup usando tar:
Escludi i file utilizzando più modelli
tar -czf backup.tar.gz --exclude=PATTERN1 --exclude=PATTERN2 ... /path/to/backup
Escludi i file utilizzando un file di esclusione riempito con un elenco di modelli
tar -czf backup.tar.gz -X /path/to/exclude.txt /path/to/backup
Escludi i file utilizzando i tag inserendo un file di tag in qualsiasi directory che dovrebbe essere saltata
tar -czf backup.tar.gz --exclude-tag-all=exclude.tag /path/to/backup
Puoi escludere le directory con --exclude
per tar.
Se vuoi archiviare tutto tranne /usr
puoi usare:
tar -zcvf /all.tgz / --exclude=/usr
Nel tuo caso forse qualcosa come
tar -zcvf archive.tgz arc_dir --exclude=dir/ignore_this_dir