LINUX.ORG.RU

Создать файл определённого размера.


0

2

Есть ли возможность средствами системы создать файл определённого размера?
Я знаю что это можно сделать с помощью dd if=/dev/zero, но мне кажется это тупой способ. Неужели нет команды, которая просто быстро создаст файл, всего лишь записав в таблицу ФС соответствующие данные, а внутри созданного таким образом файла будут данные, которые просто физически валялись в этом месте диска? Или вон как битторрент клиенты резервируют место на диске, они создают пустые файлы, которые потом наполняют скачанными данными.

они их создают именно как файлы.

т.е. не сильно отличается от dd if=/dev/zero

в принципе если это для образа диска то есть qemu-img, оно даже несколько форматов умеет.

Slackware_user ★★★★★
()
Ответ на: комментарий от Eddy_Em

man dd, без всяких манов по си. seek или что-то в этом роде смотри.

staseg ★★★★★
()

> Или вон как битторрент клиенты резервируют место на диске,
dd if=/dev/zero of=file bs=1M count=0 seek=N

AITap ★★★★★
()
time dd if=/dev/zero of=bigfile bs=1024 seek=10000000000 count=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.000506978 s, 2.0 MB/s

real    0m0.006s
user    0m0.008s
sys     0m0.000s


$ ls -lh bigfile 
-rw-r--r-- 1 user user 9.4T bigfile
sdio ★★★★★
()
Ответ на: комментарий от anonymous

Я так полагаю, по привычке и из соображений наглядности

dumal ★★
()
Ответ на: комментарий от sdio

Спасибо за пример, интересно...
А почему на выходе получаются файлы терабайтных размеров? Если seek указать 5M например, то получается 5GB.
Кстати, если count не указат, то процесс длится долго и при этом сильно грузить проц.

firestarter ★★★☆
() автор топика
Ответ на: комментарий от adriano32

Да читал я ман этот сколько раз уже, но только сейчас дошло, спасибо.

firestarter ★★★☆
() автор топика
Ответ на: комментарий от sergej

>man truncate

О, вот это вообще офигенно, спасибо!

firestarter ★★★☆
() автор топика
Ответ на: комментарий от sergej

Ух ты. Даже такое, оказывается, есть... А я все велосипеды сишные делаю... :)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Выходит что ls показывает левую и правую границу заселенных блоков, хотя на деле оказывается, что эта величина реально имеет мало отношения к величине файла?

mclaudt
()
Ответ на: комментарий от mclaudt

Кстати, создать разреженный файл, размером раз в 100 больше раздела, на котором он находится - оригинальная шутка над новичками (правда, они быстро разбираются, что к чему).

Eddy_Em ☆☆☆☆☆
()

>с помощью dd if=/dev/zero, но мне кажется это тупой способ. Неужели нет команды, которая просто быстро создаст файл, всего лишь записав в таблицу ФС соответствующие данные, а внутри созданного таким образом файла будут данные, которые просто физически валялись в этом месте диска?

man dd, двоешник

Led ★★★☆☆
()
Ответ на: комментарий от Eddy_Em

>Кстати, создать разреженный файл, размером раз в 100 больше раздела, на котором он находится - оригинальная шутка
Не шутка, а вполне действенный метод отучить нехороших людей миррорить шары.

x3al ★★★★★
()
Ответ на: комментарий от firestarter

ты так и не научился пользоваться утилитой man?

Led ★★★☆☆
()
Ответ на: комментарий от sergej

спасибо, добрый человек.
велосипед с dd достал и некошерно, ибо mkfile 100500[kb|mb|gb|tb] /path/to/my_black_hole. теперь вот и в линуксе по-человечески Ж)

EvgGad_303 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.