Risposte:
Tar è lo strumento di archiviazione e gzip è lo strumento di compressione. Per comprimere una directory completa, devi prima archiviarla in un singolo file. Questo è ciò che il lavoro è tar. e quindi comprimi il file archiviato. È possibile eseguire entrambe le attività in un singolo comando tar con l'opzione appropriata.
tar -czf nome_cartella.tar.gz nome_cartella /
Se non vuoi creare un archivio tar (potresti voler comprimere solo un singolo file), puoi usare direttamente il comando gzip.
gzip file.txt
Creerà un file compresso chiamato file.txt.gz
-czf
dopo tar
sono per: c
indica che si desidera creare un archivio tar, z
si applica gzip
sulla tar intermedio, e f
è per il successivo nome del file finale folder_name.tar.gz
.
gzip file.txt
sostituisce il file originale.
gzip -k file.txt
per "mantenere" (non eliminare) il file di input.
Se qualcuno sta ancora trovando questa domanda durante la ricerca di "gzip in Mac", ho scritto una guida che potrebbe essere utile a qualcun altro. Eccolo:
Il comando più semplice comprime il file filename.ext
e lo sostituisce con filename.ext.gz
nella stessa directory.
gzip filename.ext
Se non si desidera perdere il file originale, è necessario reindirizzare l'output di gzip -c
un file.
gzip -c filename.ext > anotherfile.gz
Possiamo anche comprimere dall'input standard, quindi possiamo comprimere l'output di altri comandi.
cat filename.ext | gzip > anotherfile.gz
OS X include anche i comandi compress
e uncompress
. Fanno un gzip "più intelligente", in quanto non comprime il file se crescesse dopo il processo di compressione. Il seguente comando sostituisce filename.ext
con filename.ext.Z
nella stessa directory.
compress filename.ext
Per ripristinare un file allo stato naturale non compresso è possibile utilizzare gzip o altri wrapper. La modalità di decompressione di gzip è chiamata con la -d
bandiera. Questa modalità sostituirà il file filename.ext.gz
con filename.ext
nella stessa directory. C'è anche una scorciatoia chiamata gunzip
che farà lo stesso.
gzip -d filename.ext.gz
gunzip filename.ext.gz
Possiamo anche reindirizzare il file decompresso all'output standard per salvarlo in un altro file.
gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile
Un altro modo rapido di leggere il contenuto di un gzip sull'output standard è zcat
, sostanzialmente è lo stesso della chiamata, gzip -cd
ma è possibile chiamare più file e farli concatenare allo stesso modo in cui il cat
comando concede i file di testo. L'unico inconveniente è che i tuoi file devono essere suffissi con il .Z
suffisso affinché funzioni ...
zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z
Ma non temere! zcat
è ancora utile, perché può decomprimersi dall'output standard. Quindi puoi fondamentalmente reindirizzare i tuoi file su zcat per farli decomprimere sulla finestra del terminale.
cat filename.ext.gz | zcat
Questo è molto utile se hai bisogno di controllare il contenuto di un file molto velocemente e puoi anche salvare l'output di zcat in un file, altrettanto facile.
cat filename.ext.gz | zcat > anotherfile
Il uncompress
wrapper funziona come gzip -cd
ma cerca i file con estensione .Z per sostituirli nella directory corrente, quindi devi solo specificare il nome del file che vuoi ripristinare, ma va bene se lo chiami con l'estensione .Z, come il programma lo ignorerà.
compress filename.ext
uncompress filename.ext
Spero che trovi utile la mia guida :)
Sì, devi prima tar la directory. Il comando tar può fare entrambe le cose:
tar -czf archiv.tar.gz mydir/
estrai il tuo archivio:
tar -xzf archiv.tar.gz
Per aggiungere alla risposta di @taskinoor: se si utilizza la versione a file singolo, ovvero
gzip file.txt
tieni presente che il file originale (file.txt) verrà rimosso e avrai solo file.txt.gz
Vorrei mettere questo come commento ma non ho abbastanza karma per farlo: =)
gzip --keep file.txt
manterrà l'originale e creare file.txt.gz
. Vedere gzip --help
.
Sì, questo è corretto. gzip
può solo comprimere un file. tar
codifica il contenuto della directory in un unico file, che può essere ulteriormente compresso usando gzip
, bzip2
, lzma
o qualsiasi altra cosa.
objective-c
ma stai chiedendo della riga di comando.