
Я хотел узнать, как создать 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