Sparse files (разряженные файлы): различия между версиями
Перейти к навигации
Перейти к поиску
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 5: | Строка 5: | ||
* [http://dar.linux.free.fr/doc/Tutorial.html DAR] - архиватор для больших файлов, поддерживает sparse, дифференциальный бэкап на уровне изменяемых блоков. | * [http://dar.linux.free.fr/doc/Tutorial.html DAR] - архиватор для больших файлов, поддерживает sparse, дифференциальный бэкап на уровне изменяемых блоков. | ||
− | Если файл содержит большие | + | Если файл содержит большие фрагменты заполненные нулями, то они могут быть вырезаны и место занимаемое файлом частично освободится, при этом логический размер не изменится. |
− | |||
<pre> | <pre> | ||
+ | # вырезание пустот (преобразование обычного файла в sparse файл) | ||
fallocate -d </path/to/file> | fallocate -d </path/to/file> | ||
+ | |||
+ | # утилита копирования cp | ||
+ | # --sparse=auto (по умолчанию в RHEL10, в других дистрибутивах не проверялось) если источник является sparse, то файл назначения тоже будет sparse | ||
+ | # --sparse=never файл назначения будет не sparse | ||
+ | # --sparse=always файл назначения будет sparse | ||
+ | # пример конвертации в sparse | ||
+ | cp --sparse=always /path/to/file1 /path/to/file2 | ||
+ | |||
+ | # к сожалению dar исключен из репозитория RHEL10 | ||
+ | |||
+ | # актуальная версия tar поддерживает sparse | ||
+ | # пример архивации с конвертацией в sparse | ||
+ | tar --sparse -cJvf /path/to/file.tar.xz /path/to/file.dat | ||
+ | |||
+ | # если файл архива был создан с конвертацией в sparse, то при распаковке он будет восстановлен как sparse не зависимо от наличия опции --sparse | ||
+ | tar -xJvf /path/to/file.tar.xz | ||
+ | |||
+ | # (нужно проверить) возможно так все восстанавливаемые файлы будут конвертироваться в sparse | ||
+ | # даже если они не были sparse и архивировались без опции --sparse | ||
+ | tar --sparse -xJvf /path/to/file.tar.xz | ||
+ | |||
+ | # утилита du (disk usage) | ||
+ | du /path/to/file # объем занимаемый на диске, в том числе с учетом sparse | ||
+ | du --apparent-size /path/to/file # логический размер файла, то что отображает ls -l --block-size=K | ||
+ | |||
+ | # утилита ls | ||
+ | ls -ls /path/to/file # отдельно в первом столбце отображает размер занимаемый на диске в блоках, в том числе с учетом sparse | ||
+ | |||
</pre> | </pre> |
Текущая версия на 01:10, 24 июля 2025
Ссылки по теме
- Разрежённый файл
- Sparse file
- Разреженные файлы в NTFS
- DAR - архиватор для больших файлов, поддерживает sparse, дифференциальный бэкап на уровне изменяемых блоков.
Если файл содержит большие фрагменты заполненные нулями, то они могут быть вырезаны и место занимаемое файлом частично освободится, при этом логический размер не изменится.
# вырезание пустот (преобразование обычного файла в sparse файл) fallocate -d </path/to/file> # утилита копирования cp # --sparse=auto (по умолчанию в RHEL10, в других дистрибутивах не проверялось) если источник является sparse, то файл назначения тоже будет sparse # --sparse=never файл назначения будет не sparse # --sparse=always файл назначения будет sparse # пример конвертации в sparse cp --sparse=always /path/to/file1 /path/to/file2 # к сожалению dar исключен из репозитория RHEL10 # актуальная версия tar поддерживает sparse # пример архивации с конвертацией в sparse tar --sparse -cJvf /path/to/file.tar.xz /path/to/file.dat # если файл архива был создан с конвертацией в sparse, то при распаковке он будет восстановлен как sparse не зависимо от наличия опции --sparse tar -xJvf /path/to/file.tar.xz # (нужно проверить) возможно так все восстанавливаемые файлы будут конвертироваться в sparse # даже если они не были sparse и архивировались без опции --sparse tar --sparse -xJvf /path/to/file.tar.xz # утилита du (disk usage) du /path/to/file # объем занимаемый на диске, в том числе с учетом sparse du --apparent-size /path/to/file # логический размер файла, то что отображает ls -l --block-size=K # утилита ls ls -ls /path/to/file # отдельно в первом столбце отображает размер занимаемый на диске в блоках, в том числе с учетом sparse