Verschieben Sie Dateien mit Terminal in einzelne Ordner, wobei Sie den Dateinamen als Ordnernamenskonvention für Ordner verwenden

Ich suche jetzt seit ein paar Stunden im Internet nach Antworten und kann nicht finden, wonach ich suche. Was ich tun möchte, ist, jede Datei in einem Verzeichnis unter Verwendung des Namens der Datei ohne die Erweiterung in einen neuen Ordner zu verschieben.

/Filme/Filmname.avi ---> /Filme/Dateiname/Dateiname.avi

Ich weiß, wie man jede einzelne Datei macht, aber kann ich es mit einem Befehl oder einem Skript zurückgezogen für den gesamten Ordner tun.

Können Sie bitte Ihr Skript als Antwort posten, anstatt es der Frage hinzuzufügen? Würde es anderen Benutzern erleichtern, zu verstehen, was vor sich geht.

Antworten (1)

Dies sollte den Zweck erfüllen.

#!/bin/bash
shopt -s nullglob    #avoid problems in directory with no files
ext=avi              #the file extension to search for
for f in *.$ext; do
    d="${f##/}"      #gives us just the filename
    d="${d%.$ext}"   #strips the file extension
    mkdir "$d"       #makes the directory
    mv "$f" "$d/$f"  #moves the file
done
Am Ende entschied ich mich, meine eigene zu schreiben, nicht schlecht, nur dass ich mehrere Erweiterungen habe. Ich werde mein Skript in ein paar Stunden posten, wenn es mir erlaubt ist