Ні, це дуже не атомічно. Це може спричинити великі проблеми, якщо ви gzip файл, який періодично додається, наприклад веб-журнал.
Gzip читає, створює .gz файл (з поточною міткою часу), копіює часову позначку оригінального файлу, а потім видаляє оригінал.
Певні перерви можуть залишити .txt.gzнеподалік незавершений файл поруч із .txtфайлом. Потім створюється проблема цілісності даних: який справжній файл? Це
- gzip, який не вдався, залишивши незавершеним / зіпсованим
.txt.gz? Або
- невдалий пістолет, залишивши неповний / усічений
.txtфайл? Або
- У файлі успішно зібрано файл
txt.gz, а новостворений .txt файл?
(Останнє трапляється, коли ви заходите у свій каталог журналів HTTP і переходите gzip *)
Я, як правило, вважаю доцільним розбирати це вручну, якщо ви точно не знаєте, що сталося, тому що ви це просто зробили.
На щастя, gzip зазвичай працює серійно, тому у вас повинна бути ця проблема лише з одним файлом. Паралелінг gzip не є хорошою ідеєю - навіть якщо він буде використовувати процесор більш повно, він розтрощить диск, змусивши його читати відразу декілька файлів, що значно уповільнює всі gzip. SSD або RAMdisk, з іншого боку ...