Как создать несколько файлов с базовым содержимым - Parrot Linux

Как создать несколько файлов с базовым содержимым - Parrot Linux

Я хотел узнать, как создать x файлов с содержимым в папке?

Например:

Я хочу создать 250 файлов с базовым содержимым в моей тестовой папке files, расположенной в моем домашнем каталоге.

Все, что мне действительно нужно, это помощь в создании большого количества файлов с содержимым для целей тестирования с использованием оболочки bash.

Любая помощь будет оценена по достоинству.

решение1

Вы можете закодировать цикл, который создает файл с содержимым и запустить его 250 раз:

for i in $(seq 1 250) ; do echo -n "content" > ~/test/file$i ; done

Объяснение:

  • seq 1 250: показать числа от 1 до 250. Он будет использоваться для подсчета необходимого вам пробега.
  • echo -n "content" > ~/test/file$i: сохраните «content» в ваших файлах в папке «test», расположенной в вашем домашнем каталоге.

Я предпочитаю использовать, echo -n > file$iпотому что это быстрее, чем touch file$1:

>> time ./01.sh
./01.sh  0,03s user 0,06s system 28% cpu 0,316 total
>> time ./02.sh
./02.sh  0,01s user 0,00s system 77% cpu 0,017 total

01.шсодержание:

#!/bin/bash

for i in {001..250} ; do touch ./01/file$i ; done

02.шсодержание:

#!/bin/bash

for i in {001..250} ; do echo -n > ./02/file$i ; done

решение2

Для начала вы можете начать с этого простого цикла bash:

for i in {001..250} ; do touch ./file$i ; done

Это создаст 250 пустых файлов в текущем каталоге с именами от file001 до file250.

Touch (в этом случае) просто создает файл, если он не существует. Пустой файл. Если вы хотите создать файлы с чем-то в них, вы можете изменить часть doцикла for. Например do cp ./master.file ./newfile.$i, который скопирует файл с именем master.file в 250 новых файлов, и они будут называться newfile.001 вплоть до newfile.250.

Слишком запутанно? Мне потребовалось некоторое время, чтобы понять, как эти вещи работают в bash, но как только я справился, я использую его почти каждый день. Так что не стесняйтесь спрашивать, я постараюсь объяснить это подробнее и/или лучше.

решение3

В дополнение к предыдущему (очень хорошему) ответу я сосредоточусь на размещении некоторого контента в файлах — в данном случае, 3 случайных английских слова и случайного числа:

$ for a in {001..009}
do
(shuf -n 3 /usr/share/dict/words ; echo $RANDOM)  > FILE_$a
done

Пример сгенерированного файла:

$ cat FILE_005
atrophy
grays
backdate
9612

Связанный контент