Нет, это очень неатомично. Это может привести к большим неприятностям, если вы скопируете файл, к которому иногда добавляются, например, веб-журнал.
Gzip читает, создает файл .gz (с текущей меткой времени), копирует метку времени исходного файла, а затем удаляет оригинал.
Некоторые прерывания могут оставить неподходящий .txt.gz
файл рядом с .txt
файлом. Это тогда создает проблему целостности данных: что является реальным файлом? Это
- gzip, который потерпел неудачу, оставив неполный / поврежденный
.txt.gz
? Или
- Gunzip, который не удалось, оставив неполный / усеченный
.txt
файл? Или
- Файл успешно заархивирован
txt.gz
, а недавно созданный .txt
файл?
(Это происходит в последний раз, когда вы заходите в каталог журналов HTTP и уходите gzip *
).
Я обычно считаю целесообразным разобраться с этим вручную, если вы не знаете точно, что произошло, потому что вы только что сделали это.
К счастью, gzip обычно работает последовательно, поэтому у вас должна быть проблема только с одним файлом. Распараллеливание gzip не является хорошей идеей - даже если он будет использовать процессор более полно, он будет разбивать диск, заставляя его читать несколько файлов одновременно, значительно замедляя работу всех gzip. SSD или RAMdisk, с другой стороны ...