it-swarm.com.de

Wie verschiebe ich einige Dateien in das übergeordnete Verzeichnis?

Ich möchte alle MP3s, die versehentlich in einen Flac-Ordner verschoben wurden, in ihren übergeordneten Ordner ziehen.

Es sollte egal sein, wie tief die Ordner sind, Ich möchte nur die passenden Dateien genau um ein Verzeichnis nach oben verschieben.

So wähle ich meine Dateien aus:

find . -path "*/flac/*" -name '*.mp3'

Dies funktioniert aus meinem Musikordner, aber ich stecke hier fest. Alle Lösungen, die ich gefunden habe, verschieben entweder die Dateien in den übergeordneten Ordner des aktuellen Ordners oder erfordern eine feste Struktur.

13
Marcel

Versuchen:

find . -path "*/flac/*" -name '*.mp3' -execdir mv -t ../ {} +

Wie es funktioniert

  1. find .

    Starten Sie einen Suchbefehl für das aktuelle Verzeichnis.

  2. -path "*/flac/*"

    Wählen Sie nur Dateien mit flac im Pfad aus

  3. -name '*.mp3'

    Wählen Sie nur Dateien mit der Erweiterung .mp3 aus.

  4. -execdir mv -t ../ {} +

    Führen Sie für alle gefundenen Dateien den Befehl mv aus dem Verzeichnis aus, in dem sich die Datei befindet, und verschieben Sie die Datei in das übergeordnete Verzeichnis.

    Die Option -execdir ist nicht nur einfacher, sondern auch sicherer als die herkömmliche Option -exec.

Vereinfachung

find . -path "*/flac/*.mp3" -execdir mv -t ../ {} +
24
John1024