GNU/Linux >> Linux Esercitazione >  >> Linux

15 Il comando Tar in Linux utilizza con esempi

Catrame è un'ottima utility che viene utilizzata per raccogliere più file in un unico archivio. Questo file è spesso chiamato 'tarball.' Oggi ti parleremo delle diverse cose che puoi fare con i tarball usando il tar comando, con esempi pratici.

Tar viene utilizzato principalmente per impacchettare applicazioni e relativi binari per l'installazione grezza che funzionerebbe su qualsiasi sistema, piuttosto che formati specifici di base come pacchetti DEB, RPM o AUR. A parte questo, tar è anche un formato abbastanza efficiente per la creazione di backup.

NOTA: Tutti i -f i tag utilizzati ovunque sono necessari ogni volta che si interagisce con qualsiasi "file", il che è quasi sempre.

Utilizzo del comando Tar in Linux

1. –elenco

Questo flag viene utilizzato per elencare i file all'interno di un tarball. L'argomento richiesto è solo il nome del tarball e (come accennato), il -f bandiera. La sintassi standard è simile a:

tar --list -f <Tarball name>

In forma abbreviata:

tar tf <Tarball name>

2. –crea

Il flag –create viene utilizzato per creare un nuovo tarball. Gli argomenti richiesti sono il nome del tarball (futuro) ei file da includere. I nomi delle directory sono accettabili anche come argomento. Il formato standard è:

tar --create -f <Required tarball name> <File names>

Questo può essere utilizzato in forma breve nel modo seguente:

tar cf <Required tarball name> <File names>

Creazione di altri formati di archivio

Esistono diversi formati di archiviazione inclusi in tar, che vengono utilizzati per la compressione. I formati che mostreremo sono .tar.xz e .tar.gz formati.

Creazione di un XZ (.tar.xz ) archivio

tar cfJ <Required tarball name> <File names>

Creazione di un GZip (.tar.gz ) archivio

tar cfz <Required tarball name> <File names>

Creazione di un archivio bzip2 (.tar.bz2)

tar cfj <Required tarball name> <File names>

3. –aggiungi

Il flag –append viene utilizzato per aggiungere file a un tarball già esistente. La sintassi è piuttosto semplice, ovvero:

tar --append -f <Tarball name> <Names of files to be added>

Più breve:

tar rf <Tarball name> <Names of files to be added>

4. –elimina

Viene utilizzato per eliminare file da un tarball. La sintassi richiede il nome del tarball e il nome del file nel seguente ordine:

tar --delete -f <Name of tarball> <Names of files>

5. –diff

La –differenza flag trova le differenze tra un tarball e alcuni file che l'utente deve specificare. Ad esempio, come accennato in precedenza, tar è ampiamente utilizzato per creare backup. Quindi, se esiste un tarball esistente e vuoi verificare se ci sono o meno differenze tra lo stato corrente dei file, rispetto a quelli che sono già nel tarball, puoi usare –diff .

Esempio:

In questa situazione, il file test nel tarball test.tar è vuoto, ma quello al di fuori del tarball ha il contenuto mostrato. Nota le differenze dimostrate da tar .

Come puoi vedere qui, l'errore mostrato tra il test vuoto e il test non vuoto è "La dimensione è diversa" ma anche quando la dimensione è la stessa, c'è un errore emesso:

In conclusione, la sintassi generale può essere mostrata come:

tar --diff -f <Name of tarball> <Names of files to be compared>

6. –aggiornamento

Questo flag può essere utilizzato per aggiornare un file specifico all'interno del tarball. Se in questo comando viene inserito un file con lo stesso nome, il file con il nuovo contenuto verrà aggiunto alla fine del file, anziché sostituire quello vecchio con l'ultima versione. Lo screenshot qui sotto descrive questo:

Anche in questo caso, questo può essere utilizzato nel caso di backup. La sintassi generale diventa:

tar --update -f <Tarball name> <Names of files to be updated>

Formato più breve:

tar uf <Tarball name> <Names of files to be updated>

7. –estrarre

Questo è probabilmente il flag più utilizzato del comando tar. Viene utilizzato per estrarre file da un tarball e, poiché è così utilizzato, ha anche molte configurazioni. Per una modifica, gli argomenti tranne il nome del tarball sono facoltativi. Se non specificato, tar estrarrà tutti i file all'interno del tarball. Quindi, la sintassi per estrarre file specifici:

tar --extract -f <Tarball name> <File names>

Per estrarre tutti i file:

tar --extract -f <Tarball name>

O un formato più breve:

tar xf <Tarball name> <Optional file names>

Estrazione di GZip (.tar.gz ) archivi

tar zxf <Tarball name> <Optional file names>

Estrazione di XZ (.tar.xz ) archivi tar

tar xf <Tarball name> <Optional file names>

Estrazione degli archivi bzip2 (.tar.bz2)

tar xjf <Tarball name> <Optional file names>

Ora, dopo aver gestito le basi, possiamo approfondire alcune funzionalità di tar .

8. Sovrascrivi il controllo

Può semplicemente capitare che i nomi di uno o più file estratti da un tarball coincidano con il nome di file già esistenti nella directory di lavoro. Alcune misure possono essere prese per fare ciò che desideri quando ciò accade. Vari scenari:

Per sovrascrivere i file

Il primo caso è che vuoi sostituire i file esistenti nella directory. Per assicurarti che ciò avvenga, impartisci il comando nel modo seguente:

tar --extract -f <Tarball name> <Optional file names> --overwrite

Per non sovrascrivere i file

Questo non sovrascriverà i file, dicendo che i file esistono già. Il comando può essere emesso nel modo seguente:

tar --extract -f <Tarball name> <Optional file names> -keep-old-files

Per sovrascrivere solo i file più vecchi

Ciò è particolarmente utile, poiché protegge solo i file più recenti rispetto ai file nell'archivio. Ad esempio, qui test2 all'interno dell'archivio sono presenti contenuti che sono stati modificati rispetto a test2 nella directory:

Come puoi vedere, dice "... è più recente o ha la stessa età ' per il resto dei file, ma non test2 , che significa test2 è stato rimpiazzato. Pertanto, la struttura del comando è:

tar --extract -f <Tarball Name> <Optional file names> --keep-newer-files

9. –rimuovi-file

Questo flag può essere utilizzato come scorciatoia per rimuovere i file dalla directory subito dopo che sono stati archiviati. È un comando abbastanza semplice, la sintassi segue:

tar --create -f < Required tarball name> <File names> --remove-files

10. –escludere

Il flag –exclude può essere utilizzato per escludere determinati file dall'archiviazione. Il modello deve essere specificato prima di ogni altra cosa, e tra virgolette, come utilizzato nel comando seguente:

tar --exclude='PATTERN' --create -f <Tarball name required> <File names>

Esempio di utilizzo:

11. –to-comando='COMANDO'

Il comando tar ha la sua caratteristica per usare l'output come input per un altro comando, ovvero il –to-command bandiera. Ad esempio, voglio usare i nomi dei file da test2.tar e creare una directory con lo stesso nome di quella dei file all'interno dell'archivio. Questo può essere fatto come:

tar xf test2.tar --to-command='mkdir $TAR_REALNAME'

Questo è abbastanza avanzato. Il '$ ' è necessario fare riferimento a qualsiasi variabile di sistema durante l'utilizzo di Bash. Il nome 'TAR_REALNAME ' è la variabile utilizzata per fare riferimento al nome di un singolo file durante l'utilizzo del comando –to-comando segnala in tar . Esistono diverse variabili di questo tipo, che possono essere trovate in man pagine di tar , nonché su questa pagina web.

12. Proprietà dei file

La proprietà dei file nell'archivio può essere configurata in vari modi. Innanzitutto, per creare un archivio in cui i file siano impostati su uno specifico proprietario, il flag –proprietario può essere utilizzato. Esempio di utilizzo:

Come visto, l'utente 0 e il gruppo 0 corrispondono all'utente root . Radice (come probabilmente saprai) è l'imperatore supremo del sistema. Puoi trovare l'UID (ID utente) e il GID (ID gruppo) di altri utenti utilizzando il comando id nel modo seguente:

id <username>

Ora per estrarre i file preservando i proprietari del file:

tar xf <Tarball name> --same-owner

13. Soluzione di backup completa

Come ho già detto alcune volte, tar è un buon programma di backup. Ti parlerò di altre bandiere che lo rendono ancora migliore. Prima di tutto, ci sono cose che vogliamo includere/escludere durante l'esecuzione dei backup. Includere i file a cui puntano i collegamenti (collegamenti simbolici). Escludere i file di backup precedenti e le directory VCS (per lo più utili solo per i programmatori). È anche importante stare fuori dalle directory di cui stai facendo un backup.

Ad esempio, sei nella /home directory e si desidera eseguire un backup dell'utente, testuser. Il comando sarebbe simile a:

sudo tar --exclude-backups --exclude-vcs --dereference --create -f backup.tar ./testuser
  • 'sudo' per due motivi:in primo luogo, che stai facendo le cose nella directory /home, che richiede privilegi. In secondo luogo, se qualsiasi collegamento simbolico punta a file al di fuori dei consueti privilegi dell'utente, ciò causerà un errore.
  • –escludere i backup e –exclude-vcs escludere rispettivamente i file di backup e VCS.
  • –dereferenziazione fa tar segui i collegamenti simbolici ai dati a cui puntano.

14. Orario modificato

Ci sono un sacco di cose che possono essere fatte con il tempo di modifica di un file. Innanzitutto, per modificare la data modificata durante l'archiviazione di un file, possiamo utilizzare il –mtime bandiera. Sintassi di base:

tar --create -f <Required tarball name> <File names> --mtime=YYYY-MM-DD

Come antidoto a ciò, il flag -m può essere utilizzato per ottenere la data modificata e invariata. Per usarlo:

tar xf <Tarball name> -m

Agisci solo sui file modificati dopo una data specifica

Questa forma del comando può essere utilizzata per agire su file che sono stati modificati dopo una data specifica. Il comando è simile a:

tar xf <Tarball name> --newer-mtime=YYYY-MM-DD

L'esempio di utilizzo è mostrato di seguito.

15. Autorizzazioni

Infine, le autorizzazioni possono essere configurate abbastanza bene nel caso di tar File. Ci sono due variazioni significative:

Conservazione delle autorizzazioni originali

Questo può essere utilizzato per preservare le autorizzazioni per il file, come indicato nell'archivio dopo essere stato estratto. Ciò si ottiene attraverso un tale comando:

tar xf <Tarball name> --preserve-permissions

Modifica dell'autorizzazione come valore predefinito

In secondo luogo, i permessi possono essere modificati come umask predefinito valori. Il valore predefinito varia in base ai sistemi. Per farlo, inserisci il seguente comando:

tar xf <Tarball name> --no-same-permissions

Conclusione

Il comando tar è molto più di quello che sembra. Ha un vasto spettro di usi, dalla creazione di pacchetti di applicazioni, alla creazione di backup, all'archiviazione anche di interi sistemi operativi. Ci auguriamo che il tutorial ti abbia aiutato a imparare qualcosa di nuovo ed eccitante su tar . Per qualsiasi domanda, usa la sezione commenti.


Linux
  1. Comando wc Linux con esempi

  2. Comando Tee Linux con esempi

  3. Comando testa di Linux con esempi

  4. Comando JQ in Linux con esempi

  5. Esempi di comandi tar in Linux

Comando IP Linux con esempi

Comando Tr in Linux con esempi

15 Comando Linux ps con esempi

Comando CD Linux con esempi

Comando Linux watch con esempi

Comando IP Linux con esempi