Wie kann ich mehrere Ordner ohne _macosx-Dateien stapelweise komprimieren?

Ich möchte mehrere Ordner gleichzeitig komprimieren, wobei jeder Ordner eine eigene Zip-Datei ist. Ich möchte die ZIP-Datei ohne _macosx oder andere versteckte Dateien erstellen und nach Möglichkeit gleichzeitig die Erweiterung der ZIP-Datei in .cbz ändern. Auf diese Weise kann ich nur einen Prozess für einen ganzen Ordner ausführen und sie alle schnell erledigen.

Ich verwende Ubooquity, um meine Comics zu hosten, und es behandelt die Dateien als beschädigt, wenn sich die _macosx-Datei oder andere versteckte Dateien in der Zip-Datei befinden.

Enthalten die einzelnen Zielordner, die Sie einzeln (im Stapelbetrieb) komprimieren möchten, auch Unterordner oder nur Dateien in jedem zu komprimierenden einzelnen Zielordner?
Es gibt keine Unterordner. Ich habe einen großen Ordner (z. B. Spider-Man). In diesem Ordner befinden sich Ordner für jede Ausgabe. (Spider-Man 001, Spider-Man 002 usw.) In diesen Ordnern befinden sich die JPG-Bilder. 001.jpg, 002.jpg usw.
Wenn Sie also im Finder in den Spider-Man-Ordner gegangen sind und Spider-Man 001, Spider-Man 002 usw. ausgewählt haben, klicken Sie mit der rechten Maustaste und wählen Sie CBZ-Zip-Archiv erstellen, und es wurde dann Spider-Man 001.cbz, Spider, erstellt -Man 002.cbz usw. im Spider-Man-Ordner, wären Sie damit zufrieden? Natürlich enthält jedes ZIP-Archiv nicht den __MACOSX-Ordner oder versteckte Dateien wie .DS_Store, .localized oder andere Ausschlüsse, die nach Bedarf hinzugefügt werden.
Ja, ich wäre froh, wenn ich sie per Rechtsklick komprimieren und CBZ erstellen auswählen könnte, wenn die Dateien _macosx und .ds_store nicht enthalten wären. Wenn ich nur die Standardkomprimierungsoption verwende, werden diese eingeschlossen.

Antworten (1)

Hier ist ein Automator-Dienst , der als einzelne Run Shell Script- Aktion verwendet , um den Prozess zu verarbeiten.

  • Wählen Sie in Automator : Datei > Neu > Dienst

  • Set: Dienst empfängt ausgewählte Ordner im Finder

  • Fügen Sie eine Shell-Skript ausführen -Aktion hinzu

    • Einstellungen: Shell: /bin/bash und Eingabe übergeben: als Argumente
    • Ersetzen Sie den gesamten Standardcode durch den weiter unten gezeigten Code .
  • Speichern Sie den Automator-Dienst und geben Sie ihm einen geeigneten Namen, z. B.: Create CBZ Zip Archive

Wählen Sie nun im Finder die Zielordner aus, für die Sie ein individuelles ZIP-Archiv mit einer .cbz-Erweiterung für jeden ausgewählten Ordner wünschen, klicken Sie dann mit der rechten Maustaste und wählen Sie im Abschnitt „ Dienste “ des Kontextmenüs „CBZ-Zip-Archiv erstellen“ aus .

Code für die Aktion "Shell-Skript ausführen ":

for d in "$@"; do
    if ! cd "$(dirname "$d")"; then exit; fi
    if ! d="$(basename "$d")"; then exit; fi
    if [[ ! -e "${d}.cbz" ]]; then
        if ! zip -r "${d}.cbz" "$d" -x \*.DS_Store \*.localized; then exit; fi
    fi
done

Anmerkungen:

  • Wie codiert erstellt es nur die ZIP-Archivdatei filename.cbz, wenn die Datei noch nicht existiert.
  • Es erstellt die ZIP-Archivdatei filename.cbz in demselben Ordner, der die ausgewählten Ordner enthält.
  • Es ist so geschrieben, dass das Skript ohne Benachrichtigung beendet wird, wenn bei einem der ausgeführten Schritte ein Fehler auftritt. Die Fehlerbehandlung kann nach Bedarf/Wunsch modifiziert werden.
  • Standardmäßig zipwird der Ordner nicht eingeschlossen , __MACOSXund wenn Sie feststellen, dass es neben .DS_Storeund noch weitere versteckte Dateien .localizedgibt, obwohl Sie in diesem Anwendungsfall nicht auf letztere stoßen sollten, können Sie dem zip Befehl zusätzliche Ausschlüsse hinzufügen .
  • Der einzige Hinweis darauf, dass das Skript fertig ist, ist, wenn das Automator-Service-Zahnradsymbol in der Menüleiste verschwunden ist. Einige andere Formen der Abschlussbenachrichtigung können dem Skript hinzugefügt werden und/oder der Arbeitsablauf des Automator-Dienstes kann mit zusätzlichen Aktionen erweitert werden , je nach Bedarf, Bedarf/Wunsch.
  • So wie es ist, ist es kein Schnickschnack, aber es tut, wofür es programmiert ist.
Das funktioniert perfekt für meine Bedürfnisse. Vielen Dank!
Gibt es eine Möglichkeit, den Dienst hinzuzufügen, damit er angezeigt wird, wenn Sie im Standardmenü mit der rechten Maustaste klicken, oder muss ich immer mit der Maus über die Registerkarte "Dienste" fahren?
@Ryan Bolesm Wie viele Dienste haben Sie im Kontextmenü "Dienste" im Finder? Sie können ihm auch einen Shortcut zuweisen, zB: ⇧⌘B
Ich habe 1. Ordneraktionen eingerichtet ... 2. Omnifocus 2 3. Zur Wunderlist hinzufügen 4. Umbenennen 5. CBZ Zip 6. Im Finder anzeigen. Wie füge ich es als Verknüpfung hinzu?
@Ryan Boles, IIRC Sobald Sie mehr als 4 Dienste haben, werden Dienste als Untermenü im Kontextmenü erstellt. Wenn Sie den folgenden Befehl im Terminal ausführen, sollte alles direkt im Kontextmenü angezeigt werden: defaults write -g NSServicesMinimumItemCountForContextSubmenu -int 100001Dann killall Finderwird die Änderung wirksam. So fügen Sie eine Tastenkombination hinzu: Systemeinstellungen > Tastatur > Tastenkombinationen > Dienste
Es sagt, ich muss 15 haben, damit es angezeigt wird. Es heißt, dass es aufgezeichnet wurde, aber es ist vor der öffentlichen Anzeige verborgen.
@Ryan Boles, ja, ich dachte, es wären 10, tut mir leid.