Я хотел бы создать файл с именем example.file
. Я мог бы использовать
touch example.file
но я хочу, чтобы размер файла был ровно 24 МБ. Я уже проверил man-страницу touch, но таких параметров нет. Есть ли простой способ создания файлов определенного размера?
bash
command-line
files
R_User
источник
источник
Ответы:
Вы можете использовать дд:
или же
или, на Mac,
источник
bs=1G count=1
dd if=/dev/zero of=output.dat bs=24m count=1
m
.Под не встроенным Linux или Cygwin (или любой системой с GNU coreutils) и FreeBSD:
Это создает файл, полный нулевых байтов. Если файл уже существует и его размер меньше, он увеличивается до запрошенного размера с нулевыми байтами. Если файл уже существует и имеет больший размер, он усекается до запрошенного размера.
Нулевые байты не занимают места на диске, файл является разреженным файлом .
Во многих системах
head -c 24m </dev/zero >example.file
создает не разреженный файл, полный нулевых байтов. Еслиhead
в-c
вашей системе нет опций (это распространено, но не в POSIX), вы можете использоватьdd bs=1024k count=24 </dev/zero >example.file
вместо этого (это POSIX-совместимый).источник
Если вас не волнует содержимое файла, это намного быстрее, чем при использовании
dd
:Очевидно, что использование
dd
файла размером 24 МБ в современной системе не займет много времени, но большие файлы могут быть заметно медленными.источник
Вы можете использовать дд:
Или в случае, если вы используете Solaris
источник
-n
к созданию разреженного файлаисточник
fallocate
может быть хорошим ответом, но почему все остальные строки? Сократите свой ответ так, чтобы он делал только то, о чем просили, и ничего более.fallocate -l 10M somefile.dump