GNU/Linux >> Linux Esercitazione >  >> Linux

Come gzippare tutti i file in tutte le sottodirectory in un file compresso in bash

ci sono molti metodi di compressione che funzionano in modo ricorsivo dalla riga di comando ed è bene sapere chi è il pubblico finale.

ad esempio, se deve essere inviato a qualcuno che esegue Windows, allora zip sarebbe probabilmente il migliore:

zip -r file.zip folder_to_zip

unzip filenname.zip

per altri utenti Linux o il tuo tar personale è fantastico

tar -cvzf filename.tar.gz folder

tar -cvjf filename.tar.bz2 folder  # even more compression

#change the -c to -x to above to extract

Bisogna stare attenti con tar e come le cose vengono tarate/estratte, per esempio se eseguo

cd ~
tar -cvzf passwd.tar.gz /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd


pwd

/home/mionomeutente

tar -xvzf passwd.tar.gz

questo creerà/home/myusername/etc/passwd

unsure se tutte le versioni di tar lo fanno:

 Removing leading `/' from member names

Il post di @amitchhajer funziona per GNU tar. Se qualcuno trova questo post e ne ha bisogno per lavorare su un NON GNU system, possono farlo:

tar cvf - folderToCompress | gzip > compressFileName

Per espandere l'archivio:

zcat compressFileName | tar xvf -

tar -zcvf compressFileName.tar.gz folderToCompress

tutto in folderToCompress andrà a compressFileName

Modifica:dopo la revisione e i commenti mi sono reso conto che le persone potrebbero confondersi con compressFileName senza un'estensione. Se vuoi puoi usare l'estensione .tar.gz (come suggerito) con compressFileName


Linux
  1. Come rimuovere tutti i file in una cartella tranne un file specifico in Linux

  2. Come estrarre i file .gz e .tar.gz in Linux

  3. Come controllare la sottostringa in Shell Script Bash?

  4. Come ordinare i file in cartelle per tipo di file su bash (con il comando 'file')?

  5. Come gzippare tutti i file in tutte le sottodirectory in bash

Come leggere i file riga per riga in Bash

Come risolvere:stdin:non in formato gzip

Tutto sui file tar e su come tar, untar file in Linux usando il terminale

Come eseguire il tar di tipi di file specifici (estensioni) in una directory

Come unire più file PDF in un unico PDF in Linux

Come unire/unire più file audio in uno in Linux