81 lines
2.6 KiB
Bash
Executable file
81 lines
2.6 KiB
Bash
Executable file
#!/bin/bash
|
||
# create_test_tree.sh
|
||
|
||
# Erzeugt ein Verzeichnis mit dem Namen $TOPDIR und 20 Unterverzeichnissen
|
||
# deren Namen aus zufälligen gewöhnichen und ungewöhnlichen Zeichen (s. chars) bestehen.
|
||
# Diese enthalten Dateien mit Basisnamen aus zufälligen gewöhnichen und ungewöhnlichen Zeichen
|
||
# und konventionellen Endungen (s. extensions). Der Inhalt ist ebenfalls zufällig.
|
||
#
|
||
# Dieser Dateibaum dient dann zum Testen des Rust-Programms NameToUnix :
|
||
# z. B.
|
||
# NameToUnix -n $TOPDIR (Option -n ==> Änderungen nur anzeigen)
|
||
# oder
|
||
# NameToUnix $TOPDIR
|
||
#
|
||
#
|
||
# (c) 2025 Dieter Schlüter <dieter.schlueter@linix.de>
|
||
|
||
TOPDIR="./testverzeichnis"
|
||
|
||
# 1. Altes Testverzeichnis löschen
|
||
rm -rf "$TOPDIR"
|
||
|
||
# 2. Neues Verzeichnis erstellen
|
||
mkdir -p "$TOPDIR"
|
||
cd "$TOPDIR" || exit
|
||
|
||
|
||
# Liste gewöhnicher und ungewöhnlicher Zeichen und Emojis
|
||
|
||
chars=(
|
||
"a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m"
|
||
"n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
|
||
"A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
|
||
"N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
|
||
"0" "1" "2" "3" "4" "5" "6" "7" "8" "9"
|
||
" " " " "!" "@" "#" "$" "%" "^" "&" "*" "(" ")"
|
||
"=" "+" "[" "]" "{" "}" "|" "\\" ";" ":" "'" "\""
|
||
"," "<" ">" "?" "~" "\`" "¡" "™" "£" "¢" "∞" "§" "¶"
|
||
"•" "ª" "º" "≠" "œ" "∑" "´" "®" "†" "¨" "ˆ" "ø" "π"
|
||
"“" "‘" "«" "…" "å" "ß" "∂" "ƒ" "©" "˙" "∆" "˚" "¬"
|
||
"Ω" "≈" "ç" "√" "∫" "˜" "µ" "≤" "≥" "÷"
|
||
"🦄" "👾" "💩" "🚀" "🎉" "😱" "🤯" "🌌" "💥" "🔧" "📁"
|
||
)
|
||
|
||
# Liste üblicher Dateiendungen
|
||
extensions=("txt" "jpg" "png" "pdf" "docx" "xlsx" "pptx"
|
||
"zip" "tar.gz" "sh" "py" "js" "html" "css"
|
||
"php" "json" "xml" "csv" "log" "conf")
|
||
|
||
# Zufälliger Datei/Verzeichnis Name Generator
|
||
generate_weird_name() {
|
||
local length=$(( RANDOM % 15 + 5 ))
|
||
for ((i=0; i<length; i++)); do
|
||
local char_idx=$(( RANDOM % ${#chars[@]} ))
|
||
echo -n "${chars[$char_idx]}"
|
||
done
|
||
}
|
||
|
||
# 20 bizarre Verzeichnisse erstellen
|
||
for d in {1..20}; do
|
||
# for d in {1..2}; do
|
||
dir_name="$(generate_weird_name)"
|
||
mkdir -p "$dir_name"
|
||
|
||
# 20 Dateien pro Verzeichnis
|
||
for f in {1..20}; do
|
||
# for f in {1..5}; do
|
||
file_base="$(generate_weird_name)"
|
||
ext_idx=$(( RANDOM % ${#extensions[@]} ))
|
||
file_name="${file_base}.${extensions[$ext_idx]}"
|
||
|
||
# Datei mit zufälligem Inhalt erstellen
|
||
head -c $(( RANDOM % 1024 )) /dev/urandom > "$dir_name/$file_name" 2>/dev/null
|
||
done
|
||
done
|
||
|
||
# Beispielausgabe
|
||
echo "Testumgebung erstellt:"
|
||
tree -L 2 | head -n 20
|
||
exit 0
|
||
|