Stai cercando l'argomento --exclude
.
--exclude=PATTERN
Alcuni utenti trovano le opzioni exclude
confuse. Ecco alcuni errori comuni:
La modalità operativa principale del tar
non agisce su un nome del percorso esplicitamente elencati sulla riga di comando se uno del suo nome file viene escluso componenti. Nell'esempio sopra, se si crea un archivio ed escludi i file che terminano con *.o
, ma si specifica esplicitamente il nome dir.o/foo
dopo aver elencato tutte le opzioni, dir.o/foo
verrà escluso dall'archivio.
a volte si può confondere i significati di --exclude=PATTERN
e --exclude-from=FILE-OF-PATTERNS
(-X FILE-OF-PATTERNS
). Sii prudente : usa --exclude=PATTERN
quando i file da escludere sono dato come modello sulla riga di comando. Utilizzare --exclude-from=FILE-OF-PATTERNS
per introdurre il nome di un file che contiene un elenco di motivi, uno per riga; ognuno di questi modelli può escludere zero, uno o più file.
Quando si utilizza --exclude=PATTERN
, è assolutamente necessario indicare il parametro PATTERN , quindi GNU tar
vede i caratteri jolly come *
. Se non lo fai, la shell potrebbe espandere lo *
stesso usando i file a portata di mano, quindi tar
potrebbe ricevere un elenco di file invece di uno schema o nessuno, rendendo il comando un po 'illegale. Questo potrebbe non corrispondere a quello che desideri.
Ad esempio, scrivere:
$ tar -c -f ARCHIVE.TAR --exclude '*.o' DIRECTORY
piuttosto che:
$ tar -c -f ARCHIVE.TAR --exclude *.o DIRECTORY
- È necessario utilizzare la sintassi shell uso, o globbing, piuttosto che
regexp
sintassi, quando si utilizza esclude opzioni in tar
. Se si tenta di utilizzare la sintassi regexp
per descrivere i file da escludere, il comando potrebbe non riuscire.
Grazie per la risposta. Hai ragione nel dire che --exclude può essere un po 'confuso. Non l'ho capito al 100% fino a quando non ho letto le tue spiegazioni. Grazie – VinkoCM