Wenn ich in Shotwell Bilder von meiner Kamera importiere, werden auch die Videoclips importiert. Das ist etwas nervig, da ich meine Videos in einem anderen Ordner speichern möchte. Ich habe versucht, einen Bash-Befehl zu schreiben, habe aber keinen Erfolg gehabt.
Ich benötige einen Befehl, der die folgenden Anforderungen erfüllt:
- Suchen Sie alle Dateien in einer Verzeichnisstruktur, die nicht die Erweiterung .jpg, .png, .gif oder .xcf haben (ohne Berücksichtigung der Groß- und Kleinschreibung).
- Verschieben Sie alle diese Dateien in ein Zielverzeichnis, unabhängig davon, ob die Dateinamen oder Verzeichnispfade Leerzeichen oder Sonderzeichen enthalten.
Jede Hilfe wäre dankbar!
BEARBEITEN: Ich verwende die Standard-Shell in Ubuntu, was bedeutet, dass einige Befehle Aliasing usw. sind.
EDIT 2: Ich habe es selbst versucht (nicht der Kopierteil, nur die Auflistung der Dateien). Ich habe extglob aktiviert und den folgenden Befehl ausgeführt:
$ ls -R /path | awk '
/:$/&&f{s=$0;f=0}
/:$/&&!f{sub(/:$/,"");s=$0;f=1;next}
NF&&f{ print s"/"$0 }'
Dies listet alles auf. Ich habe versucht, grep am Ende zu verwenden, habe aber nicht die geringste Ahnung, wie ich es dazu bringen kann, dass es nicht mit einem Muster übereinstimmt, das ich ihm gebe. Der extglob-Schalter hat bei grep nicht viel geholfen, obwohl er bei anderen Befehlen hilft.