Сделать размер файла не менее 1 МБ
Я пытаюсь узнать об операционных системах, создав одну из них и протестировав ее в виртуальной коробке, но VBoxManage convertfromraw
не позволяет моему исходному файлу быть очень маленьким (512B).
Существуют ли какие-либо команды bash, которые будут выполнять следующие действия (псевдокод), сохраняя при этом содержимое файла?
if (FILE.size < 1MB) {
FILE.resize(1MB);
}
2 ответа
Решение
Предполагая Linux и современную файловую систему (безопасная - только растёт файлы):
fallocate --length=1M yourfile
Без Fallocate (создает редкий файл при росте; будьте осторожны с размером):
truncate --size=1M yourfile
Без Fallocate (требуется 64-битная система для файлов размером более 2 ГБ):
file="yourfile"
want=$(( 1 * 1024 * 1024 ))
size=$(stat -c %s "$file")
if (( want > size )); then
head -c $(( want - size )) /dev/zero >> "$file"
fi
Из другой ветки:
dd if=/dev/zero bs=1 count=NUMBER >> yourfile
Это будет читать из
/dev/zero
и добавить кyourfile
NUMBER
байт.