Devo creare un archivio con il comando gzip (non tar - è necessario) e l'archivio dovrebbe contenere file da un'altra directory - ad esempio / etc. Ho provato ad usare il comando
gzip myetc.gz /etc
Ma non ha funzionato.
Devo creare un archivio con il comando gzip (non tar - è necessario) e l'archivio dovrebbe contenere file da un'altra directory - ad esempio / etc. Ho provato ad usare il comando
gzip myetc.gz /etc
Ma non ha funzionato.
Risposte:
Gzip funziona solo con un singolo file o un flusso - dati inviati a gzip. Quindi devi prima generare un file, come con tar, e poi puoi comprimerlo. L'altra opzione è quella di decomprimere tutti i singoli file, quindi tar in un unico file.
Entrambe queste soluzioni sono stupide e non dovrebbero essere utilizzate. Dovresti usare tar con l'opzione di compressione integrata e fare tutto in un solo comando.
.tar.gz
...
cat filename | grep blah
è stupido. È anche molto meno che ottimale perché utilizzerebbe un ampio spazio intermedio. Non so se lo definirei stupido quanto ingiustificato, non ottimale e in genere solo brutto. Beh, anche gli stupidi funzionano.
fork()
.
gzip
funziona con i file, non con le directory. Pertanto, per creare un archivio di una directory è necessario utilizzare tar
(che creerà un singolo tarball da più file):
tar cvf myetc.tar /etc
oppure, per un archivio compresso con zip:
tar cvzf myetc.tar.gz /etc
cd / ; tar cf - ./etc | gzip -c - > myetc.tar.gz
(se ti stai chiedendo perché tar "./etc" invece di "/ etc", è perché su quei sistemi più vecchi, quando si usa tar xvf, verrà emesso in / etc e sovrascritto ... [oppure devi usare "pax" in quel caso]). Comando inverso, ovvero estrarre quell'archivio sotto "/ da qualche parte": cd /somewhere ; gzip -dc < /the/location/of/myetc.tar.gz | tar xvf -
Se davvero non hai tar disponibile, puoi usare gzip per creare un backup di una directory usando l'opzione (-r - ricorsivamente), ma forse non è esattamente quello che ti aspetti ...
Per prima cosa dovrai copiare la tua directory con un altro nome, se vuoi mantenere intoccabile la directory originale.
#cp -a directory my_gzip_alone_backup
In secondo luogo, comprimerai tutti i file nella directory in modo ricorsivo (-r).
#gzip -r my_gzip_alone_backup
Ora diamo un'occhiata all'interno di my-gzip-alone-backup. Non avrai un singolo file myfile.gz come ti aspetti, ma molti file gziped ricorsivamente. Ma non è bene farlo con etc a causa dei symlink ...
Per decomprimere la directory è possibile applicare la stessa logica con gunzip.
Un altro modo è convertire la directory in un singolo file, se non hai tar per farlo, ma hai il dd util, come dimostrato in questo post: /ubuntu/626634/converting-a -file-to-directory
gzip
non lo èzip
. Sono strumenti diversi che funzionano in modo diverso.