Sie, dass mit einem bash
Skript tun könnte.
Zuerst eine Sicherungskopie erstellen!
Speichern Sie die folgenden in Ihrem HOME-Verzeichnis als reorganise
:
#!/bin/bash
find $(pwd) -name "* -*" -print0 | while read -d $'\0' f; do
echo Processing file $f...
base=$(basename "$f")
echo " base: $base"
case=${base/ -*/}
echo " case: $case"
# EDIT THE FOLLOWING LINE TO BE CORRECT FOR YOU !!!
newplace="/path/to/new/place/$case"
echo mkdir -p "$newplace"
echo cp "$f" "$newplace"
done
Dann Terminal
starten und die folgenden nur einmal eingeben, um das Skript ausführbar zu machen:
chmod +x reorganise
in das Verzeichnis dann, wo Ihre Dateien sind:
cd where/your/files/are
Und dann Sie können das Skript mit ausführen:
$HOME/organise
und es wird Ihnen sagen, was es tun würde, ohne etwas zu tun. Wenn es Ihnen gefällt, können Sie das Wort echo
in der zweiten und dritten bis letzten Zeile entfernen und es erneut ausführen.
Sie müssen mindestens die angegebene Zeile bearbeiten.
Beispielausgabe
Processing file /Users/mark/tmp/1234563 - fredb...
base: 1234563 - fredb
case: 1234563
mkdir -p /path/to/new/place/1234563
cp /Users/mark/tmp/1234563 - fredb /path/to/new/place/1234563
Processing file /Users/mark/tmp/1234567 - fred...
base: 1234567 - fred
case: 1234567
mkdir -p /path/to/new/place/1234567
cp /Users/mark/tmp/1234567 - fred /path/to/new/place/1234567
die Zielverzeichnisse bereits existieren, wo die Dateien kopiert werden müssen? Haben die Dateinamen immer genau eine mehrstellige Zahl (keine Buchstaben) gefolgt von einem Leerzeichen und einem Bindestrich? –