Обычно распаковка восстанавливает имя и дату исходного файла (когда он был сжат); это не происходит с -c.
Если вы хотите, чтобы сжатый файл и несжатый файл имели одно и то же имя, вы не можете сделать это напрямую, вам нужно либо переименовать сжатый файл, либо переименовать несжатый файл. В частности, gzipудаляет и воссоздает его целевой файл, поэтому, если вам нужно изменить файл на месте, потому что у вас нет разрешения на запись в каталог, вам нужно использовать -cили перенаправить.
cp somefile /tmp
gunzip </tmp/somefile >|somefile
Обратите внимание, что gunzip <somefile >somefileэто не будет работать, потому что gunzipпроцесс увидит файл, обрезанный до 0 байтов, когда он начнет читать. Если бы вы могли вызвать усечение, тоgunzip бы возвращались на свой собственный вывод; в любом случае, это нельзя сделать на месте.
Теперь вы не можете сделать это и распаковать в то же имя файла. После этого вам нужно будет переименовать несжатый файл (то есть вы не сможете разархивировать его таким образом).
Ответы:
Вы можете передать
-S
возможность использовать суффикс, отличный от.gz
.Если вы хотите, чтобы несжатый файл имел другое имя, запустите
(эти команды эквивалентны).
Обычно распаковка восстанавливает имя и дату исходного файла (когда он был сжат); это не происходит с
-c
.Если вы хотите, чтобы сжатый файл и несжатый файл имели одно и то же имя, вы не можете сделать это напрямую, вам нужно либо переименовать сжатый файл, либо переименовать несжатый файл. В частности,
gzip
удаляет и воссоздает его целевой файл, поэтому, если вам нужно изменить файл на месте, потому что у вас нет разрешения на запись в каталог, вам нужно использовать-c
или перенаправить.Обратите внимание, что
gunzip <somefile >somefile
это не будет работать, потому чтоgunzip
процесс увидит файл, обрезанный до 0 байтов, когда он начнет читать. Если бы вы могли вызвать усечение, тоgunzip
бы возвращались на свой собственный вывод; в любом случае, это нельзя сделать на месте.источник
Вы можете сделать что-то вроде:
Теперь вы не можете сделать это и распаковать в то же имя файла. После этого вам нужно будет переименовать несжатый файл (то есть вы не сможете разархивировать его таким образом).
источник
gzip
но неgunzip
...zcat
:)