Удаление файла в tar, смонтированного с помощью archivemount?

archivemount позволяет rw-монтировать архивы tar.

Что происходит, когда я удаляю файл? Это действительно удалено из архива tar? Установлен ли флаг удаления?

Если файл действительно удален, то я предполагаю, что операция будет мучительно медленной, потому что весь архив необходимо будет переписать, по крайней мере, с того места, где файл был удален.

2 ответа

Решение

Вы можете проверить это довольно легко

создать файл tar

tar -cf test.tar this.txt that.txt

Получить его номер инода для последующего сравнения

ls -i test.tar
24903987 test.tar

Смонтируйте архив test.tar и удалите из него файл

archivemount test.tar /mnt/a
rm /mnt/a/that.txt
ls -i test.tar
24903987 test.tar

Обратите внимание, что файл сохраняет свой первоначальный номер инода. Давайте размонтируем файл tar и посмотрим, что произойдет

umount /mnt/a
ls -i test.tar
24903988 test.tar

Номер инода изменился, поэтому это новый файл. Это, вероятно, будет очень медленно на большом архиве.

Если я правильно понимаю, что архивирование установлено, оно фактически не обновляет содержимое файла архива до того, как вы отключите его. При размонтировании он заново создает архив и уверен, что с огромным архивным файлом это будет медленно.

Другие вопросы по тегам