Генерация нескольких сотен тестовых файлов в цикле (Linux)
Генерация
- С небольшой датой (501 файл):
for i in {1..501}; do echo $(date +%T_%s) > "${i}.txt" ; echo "$i"; done
# Sample content:
# 12:22:07_1769505327
- С произвольной неповторяющейся датой (501 файл):
for i in {1..501}; do echo "$(date +%T_%s && openssl rand -base64 24)" > "${i}.txt" ; echo -e "Generated \e[1;34m${i}.txt\e[0m"; done
# Sample content:
# 12:22:07_1769505727
# vCN9MgYoOe1PLQiitXEGhSWqaCcFwqba
- С уникальными именами и данными (501 файл):
for i in {1..501}; do fname="$(openssl rand -hex 32)"; echo -e "$(date +%T_%s)\n$fname" > "${fname}${i}.txt" ; echo -e "Generated \e[1;34m${fname}${i}.txt\e[0m"; done
# Sample content:
# 12:28:20_1769506100
# 48a2a31880bb565ca40baa3147a35c70786dfcca689de6f453690dd8e9f24d30
Создание архива
Создание архива одной командой (все txt-файлы в этой директории):
zip -r archive_$(date +%F).zip ./*.txt
Бонус: подсчет кол-ва файлов в директории
Чтобы посчитать кол-во файлов в директории, можно использовать:
ls -1 | wc -l
Но с этой командой есть нюанс: она считает вообще все записи, включая директории. Чтобы посчитать только файлы с расширением .txt можно использовать GREP:
ls -1 | grep '.txt' | wc -l

