Gzip décompresse le fichier avec une autre extension?

10

Est-il possible d'utiliser gzippour décompresser un fichier gzippé, sans l'extension gz, et sans déplacer le fichier?

Tyilo
la source
L'inverse: unix.stackexchange.com/questions/68722/…
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

Réponses:

9

Vous pouvez passer l' -Soption d'utiliser un suffixe autre que .gz.

gunzip -S .compressed file.compressed

Si vous souhaitez que le fichier non compressé ait un autre nom, exécutez

gzip -dc <compressed-file >uncompressed-file
gunzip <compressed-file >uncompressed-file

(ces commandes sont équivalentes).

Normalement, la décompression restaure le nom et la date du fichier d'origine (quand il a été compressé); cela ne se produit pas avec -c.

Si vous voulez que le fichier compressé et le fichier non compressé aient le même nom, vous ne pouvez pas le faire directement, vous devez renommer le fichier compressé ou renommer le fichier non compressé. En particulier, gzipsupprime et recrée son fichier cible, donc si vous devez modifier le fichier en place parce que vous n'avez pas l'autorisation d'écriture dans le répertoire, vous devez utiliser -cou rediriger.

cp somefile /tmp
gunzip </tmp/somefile >|somefile

Notez que gunzip <somefile >somefilecela ne fonctionnera pas, car le gunzipprocessus verrait un fichier tronqué à 0 octet au début de la lecture. Si vous pouviez invoquer la troncature, alors gunzipreviendrait sur sa propre sortie; de toute façon, celui-ci ne peut pas être fait sur place.

Gilles 'SO- arrête d'être méchant'
la source
2

Vous pouvez faire quelque chose comme:

gzip -d - < gzippedfilewithnoextention > ungzippedfile

Maintenant, vous ne pouvez pas faire cela et décompresser sous le même nom de fichier. Vous devrez ensuite renommer le fichier non compressé (c'est-à-dire que vous ne pourrez pas décompresser sur place de cette façon).

Tapis
la source
1
ou juste "gunzip -c gzfile> ungzfile"
Chris Card
Étonnamment, certaines installations de système d'exploitation ont gzipmais pas gunzip...
Mat
1
Il y a aussi zcat:)
galaxy