Ich möchte den Dateinamen vieler Dateien ändern, indem ich den vorhandenen Dateinamen ein zufälliges Suffix hinzufüge.
Ich habe versucht, diesen Code zu ändern (ändert den Dateinamen, anstatt ein Suffix hinzuzufügen), aber ohne Erfolg.
#!/bin/bash
chars=( {a..z} {A..Z} {0..9} )
function rand_string {
local c=$1 ret=
while((c--)); do
ret+=${chars[$((RANDOM%${#chars[@]}))]}
done
printf '%s\n' "$ret"
}
for file in ~/Desktop/test/*; do
ext=$(echo ${file} | sed 's,^.*(\.[^\.]*$),\1,')
mv "$file" ~/Desktop/test/"$file$(rand_string 10)"${ext}
done
Eine Befehlszeilen- oder Automatisierungslösung wäre vorzuziehen
Wenn Sie nur eine zufällige Zeichenfolge anhängen möchten, for
ist die Schleife ziemlich einfach:
cd ~/Desktop/test/
for file in *; do
suffix="${file##.*}"
base="${file%.*}"
mv "$file" "$base.$(rand_string 10).$suffix"
done
Ändern Sie das 10
in die Anzahl der zufälligen Zeichen, die Sie hinzufügen möchten.
cd
erforderlich. Und wenn Sie sich Ihren Fehler ansehen, haben Sie möglicherweise auch irgendwo einen Tippfehler.
kein Hang
El-Ekim
El-Ekim