Подтвердить что ты не робот

Создайте фиктивные файлы в bash

Я хотел бы создать фиктивные файлы в bash. Содержание не имеет значения, если бы оно было случайным, было бы неплохо, но все же байт также приемлем.

Моя первая попытка заключалась в следующей команде:

rm dummy.zip;
touch dummy.zip;
x=0;
while [ $x -lt 100000 ];
do echo a >> dummy.zip;
  x=`expr $x + 1`;
done;

Проблема заключалась в его плохом качестве. Я использую GitBash для Windows, поэтому в Linux это может быть намного быстрее, но script явно не оптимален.

Не могли бы вы предложить мне более быстрый и приятный способ создания фиктивных (двоичных) файлов заданного размера?

4b9b3361

Ответ 1

Вы можете попробовать выполнить команду head:

$ head -c 100000 /dev/urandom >dummy

Ответ 2

Вы можете использовать dd для этой цели:

dd if=/dev/urandom bs=1024 count=5 of=dummy
  • if: = в файле
  • of: = out
  • bs: = размер блока

Обратите внимание, что

 x=`expr $x + 1`;

- не самый эффективный способ вычисления в bash. Выполнение арифметического целочисленного вычисления в двойных круглых скобках:

 x=((x+1)) 

Но для инкрементированного счетчика в цикле был создан метод for-loop:

x=0;
while [ $x -lt 100000 ];
do echo a >> dummy.zip;
  x=`expr $x + 1`;
done;

в отличие от:

for  ((x=0; x<100000; ++x))
do
    echo a 
done >> dummy.zip 

Вот 3 примечания:

  • В отличие от [-case, вам не нужен интервал внутри parens.
  • вы можете использовать приращение префикса (или постфикса) здесь: ++ x
  • перенаправление в файл выведено из цикла. Вместо 1000000 шагов открытия и закрытия файл открывается только один раз.

Но есть еще более простая форма цикла for:

for x in {0..100000}
do
    echo a 
done >> dummy.zip 

Ответ 3

Это создаст текстовый файл размером в 100 000 байт:

yes 123456789 | head -10000 > dummy.file

Ответ 4

$ openssl rand 1000000 -out random.tmp

Ответ 5

Если ваша файловая система - ext4, btrfs, xfs или ocfs2, и если вам не нужен контент, вы можете использовать fallocate. Это самый быстрый способ, если вам нужны большие файлы.

fallocate -l 100KB dummy_100KB_file

Подробнее см. "Быстрое создание большого файла в системе Linux?".

Ответ 6

echo "Чтобы напечатать слово в последовательности из файла" с = 1 для w в cat file делать   echo "$ c. $w"   c = expr $c +1 сделано

Ответ 7

Простой способ:

выполните проверку файла и поместите одну строку "test"

Затем выполните:

 cat test >> test

ctrl + c через минуту приведет к большому количеству гигабайт:)