2010-07-09 11:58:42 +0000 2010-07-09 11:58:42 +0000
67
67

Comando per 'gzippare' una cartella?

Sono nuovo del prompt dei comandi di Mac. Come si crea un gzip di una cartella in Mac OS X? Mi è stato detto da alcune persone che se vuoi creare un gzip di una cartella dovresti prima ‘tar’ e poi ‘gzip’. È corretto?

Risposte (6)

132
132
132
2010-07-09 12:10:37 +0000

Tar è lo strumento di archiviazione e gzip è lo strumento di compressione. Per comprimere un'intera directory, prima devi archiviarla in un singolo file. Questo è il compito di tar. e poi si comprime il file archiviato. Puoi fare entrambi i compiti in un singolo comando tar con l'opzione appropriata.

tar -czf folder\_name.tar.gz folder\_name/

Se non vuoi fare un archivio tar (magari vuoi comprimere solo un singolo file), allora puoi usare direttamente il comando gzip.

gzip file.txt

Creerà un file compresso chiamato file.txt.gz

14
14
14
2015-03-25 02:35:06 +0000

Se qualcuno sta ancora trovando questa domanda quando cerca “gzip in Mac”, ho scritto una guida che può essere utile a qualcun altro. Eccola qui:

Comprimere

Il comando più elementare comprime il file filename.ext e poi lo sostituisce con filename.ext.gz nella stessa directory.

gzip filename.ext

Se non vuoi perdere il file originale, allora hai bisogno di pipe l'output di gzip -c in un file.

gzip -c filename.ext > anotherfile.gz

Possiamo anche comprimere dallo standard input, quindi possiamo comprimere l'output di altri comandi.

cat filename.ext | gzip > anotherfile.gz

OS X ha anche i comandi compress e uncompress. Fanno un gzip più “intelligente”, poiché non comprime il file se questo cresce dopo il processo di compressione. Il seguente comando sostituisce filename.ext con filename.ext.Z nella stessa directory.

compress filename.ext

Decompressione

Per riportare un file al suo stato naturale non compresso puoi usare gzip o altri wrapper. La modalità di decompressione di gzip è chiamata con il flag -d. 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 convogliare il file decompresso nello standard output per salvarlo in un altro file.

gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile

Un altro modo veloce di leggere il contenuto di un gzip sullo standard output è zcat, è fondamentalmente lo stesso di chiamare gzip -cd ma puoi chiamare più file e farli concatenare nello stesso modo in cui il comando cat concatena i file di testo. L'unico inconveniente è che i tuoi file devono essere preceduti dal suffisso .Z perché funzioni…

zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z

Ma non temete! zcat è ancora utile, perché può decomprimere da standard output. Quindi puoi fondamentalmente passare i tuoi file a zcat per farli decomprimere nella finestra del terminale.

cat filename.ext.gz | zcat

Questo è molto utile se avete bisogno di controllare il contenuto di un file molto velocemente, e potete anche salvare l'output di zcat in un file, altrettanto facilmente.

cat filename.ext.gz | zcat > anotherfile

Il wrapper uncompress funziona come gzip -cd ma cerca i file con estensione .Z per sostituirli nella directory corrente, quindi dovete solo specificare il nome del file che volete ripristinare, ma va bene se lo chiamate con l'estensione .Z, perché il programma la ignorerà.

compress filename.ext
uncompress filename.ext

Spero che la mia guida vi sia utile :)

4
4
4
2010-07-09 12:03:04 +0000

MacOS X è Unix quindi questo dovrebbe funzionare (questo funziona su GNU/Linux)

tar czvf compressed.tar.gz folder
3
3
3
2010-07-09 22:42:42 +0000

Per aggiungere alla risposta di @taskinoor: se usate la versione a file singolo, aka

gzip file.txt

siate consapevoli che il file originale (file.txt) sarà rimosso e avrete solo file.txt.gz

Vorrei mettere questo come commento ma non ho abbastanza karma per farlo :=)

3
3
3
2010-07-09 12:04:07 +0000

Sì, devi prima tar la directory. Il comando tar può fare entrambe le cose:

tar -czf archiv.tar.gz mydir/

estrarre il tuo archivio:

tar -xzf archiv.tar.gz
1
1
1
2010-07-09 12:04:43 +0000

Sì, questo è corretto. gzip può solo comprimere un file. tar codifica il contenuto della directory in un singolo file, che può essere ulteriormente compresso usando gzip, bzip2, lzma o qualsiasi altra cosa.