Похоже, у вас там редкий файл .
Разреженный файл - это тип компьютерного файла, который пытается более эффективно использовать пространство файловой системы, когда сам файл в основном пуст. Это достигается путем записи краткой информации (метаданных), представляющей пустые блоки на диск вместо фактического "пустого" пространства, которое составляет блок, используя меньше дискового пространства. Полный размер блока записывается на диск как фактический размер только тогда, когда блок содержит "реальные" (непустые) данные.
Есть этот ответ, который говорит:
/var/lib/docker/devicemapper/devicemapper
содержит файлы разреженных циклов, которые содержат все остальные данные, которые монтирует docker.
Ваш файл состоит в основном из пустых блоков (все нули) и как разреженный файл может вписаться в ваш небольшой раздел. Очевидно, tar
просто читает все нули и обрабатывает их. Они сжимаются очень хорошо, поэтому результирующий файл только немного увеличивается, когда заканчивается поток нулей.
У tar
опция командной строки, которая сообщает о редких файлах. Это описано здесь.
-S
--sparse
В вашем случае очень важно следующее:
При извлечении (...) любые такие файлы также имеют отверстия, созданные везде, где были найдены отверстия. (…) Подумайте об использовании --sparse
при выполнении резервного копирования файловой системы, чтобы избежать архивирования расширенных форм файлов, редко хранимых в системе.
Я предполагаю, что вы не использовали опцию --sparse
, поэтому, когда дело доходит до извлечения, ваш файл 100G
будет создан как не разреженный и не поместится в раздел 20G
.