OSX: Nach Unterordnern suchen, Verzeichnisstruktur in neuem Ordner reduzieren, dann auf den Desktop verschieben

OSX: Nach Unterordnern suchen, Verzeichnisstruktur in neuem Ordner reduzieren, dann auf den Desktop verschieben

Ich bin gerade dabei, eine riesige Manga-Bibliothek aufzuräumen (hauptsächlich – aber nicht nur – Bilddateien). Jeder Manga hat einen Hauptordner mit Unterordnern, einen für jeden Band.

Manchmal enthalten Volume-Ordner jedoch nur Bilddateien und manchmal auch Unterordner.

Ich hätte gerne ein Skript, das für den ausgewählten Manga-Ordner Folgendes tut:

  • Überprüfen Sie, welche Volume-Ordner Unterordner haben
  • Reduzieren Sie die Verzeichnisstruktur der Volume-Ordner mit Unterordnern. Anstatt alle Bilder in den übergeordneten Ordner zu legen und die Unterordner zu löschen, möchte ich, dass ein neuer Ordner auf dem Desktop erstellt und alle Bilder der Unterordner darin kopiert werden.
  • Benennen Sie den auf dem Desktop erstellten Ordner nach seinem ursprünglichen übergeordneten Ordner um

Vor :

Manga-Ordner

volume1_folder

    subfolder1 / image1, image2, image3
    subfolder2 / image4, image5, image6
    subfolder3 / image7, image8, image9

volume2_folder

    image1, image2, image3, image4, image5, image6, image7, image8, image9

volume3_folder

    subfolder1 / image1, image2, image3
    subfolder2 / image4, image5, image6
    subfolder3 / image7, image8, image9

Nach:

Schreibtisch:

volume1_folder

    image1, image2, image3, image4, image5, image6, image7, image8, image9

volume3_folder

    image1, image2, image3, image4, image5, image6, image7, image8, image9

Die Originalordner sollten unverändert bleibendamit ich nach falsch abgelegten Dateien etc. suchen kann.

Momentan verwende ich ein AppleScript, das die Verzeichnisstruktur für jeden ausgewählten Volume-Ordner vereinfacht. Es erstellt darin einen neuen Ordner, der nach dem übergeordneten Ordner benannt ist und alle kopierten Bilder enthält.

Was nicht der Fall ist:

  • prüfen, welche Volume-Ordner Unterordner haben (ich muss jeden Volume-Ordner einzeln auswählen und jedes Mal das Skript starten)
  • Verschieben Sie den erstellten Ordner mit abgeflachter Verzeichnisstruktur auf den Desktop

Ich habe versucht, selbst Änderungen vorzunehmen, aber ich konnte den neuen Ordner entweder auf den Desktop verschieben oder ihn nach dem übergeordneten Ordner umbenennen. Wenn ich die beiden Anweisungen eingab (egal welche zuerst eingegeben wurde), erhielt ich eine Fehlermeldung, dass der Ordner nach der Ausführung der ersten Anweisung nicht gefunden werden konnte. Hier ist das Skript:

tell application "Finder"
    set theTopFolder to (selection as alias)
    set theFiles to a reference to every file of (entire contents of folder theTopFolder)
    set theNewFolder to make new folder at theTopFolder with properties {name:"Flattened Files"}
    duplicate theFiles to theNewFolder
    set name of theNewFolder to name of theTopFolder
    
    
    --move theNewFolder to "Macintosh HD:Users:xx:Desktop:"
end tell

Antwort1

tell application "Finder"
    repeat with f in (get folders of (POSIX file "/Users/username/manga_folder" as alias))
        make new folder at desktop with properties {name:(get name of f)}
        duplicate files of entire contents of f to result
    end repeat
end tell

Sie können auch einen Shell-Befehl wie diesen verwenden:

cd ~/manga_folder;for d in *;do mkdir ~/Desktop/"$d";find "$d" -type f|while read f;do cp "$f" ~/Desktop/"$d";done;done

Oder wenn Sie GNU cp haben:

cd ~/manga_folder;for d in *;do mkdir ~/Desktop/"$d";find "$d" -type f -exec gcp -t ~/Desktop/"$d" {} +;done

verwandte Informationen