So übergeben Sie den Pfad der ausgewählten Datei vom Finder an das Automator Shell-Skript

Ich erstelle den Automator-Dienst, um ausgewählte Dateien in demselben Ordner zu entpacken, in dem sie sich befinden.

Wie kann ich den absoluten Pfad der ausgewählten Datei in Automator abrufen, damit ich ihn an mein Shell-Skript übergeben kann?

Wie Sie sehen können, übergebe ich vorerst nur den Dateinamen, aber es wird nicht im selben Ordner entpackt.

Ich möchte vorher Ordner wechseln unzipund dann ausführen unzip. Ich habe es versucht cd ~, aber es wird in meinen Homeordner entpackt. Ich möchte unzipim selben Ordner wie ausgewählte Dateien vorhanden sein.

Geben Sie hier die Bildbeschreibung ein

Fügen Sie cd "$(dirname "$f")"vor der unzipZeile hinzu.
Das ist großartig, stelle es als Antwort bitte und ich markiere es. vielen Dank
Ich verstehe nicht, warum Sie ein Skript benötigen - ich doppelklicke auf eine ZIP-Datei und sie wird ohne ein weiteres Dialogfeld oder irgendetwas an derselben Stelle extrahiert.
@SolarMike ArchiveUtility funktioniert manchmal nicht für bestimmte Archivdateien und gibt Fehler zurück. Die Verwendung von Unzip funktioniert wie ein Zauber.

Antworten (1)

Fügen Sie cd "$(dirname "$f")"vor der unzipZeile hinzu.

for f in "$@"; do
    cd "$(dirname "$f")"
    unzip -o "$f"
done 

oder ohne in das Verzeichnis zu wechseln, verwenden Sie die -dOption

[-d exdir]
          An  optional  directory  to which to extract files.  By default, all files and subdirectories
          are recreated in the current directory; the -d  option  allows  extraction  in  an  arbitrary
          directory.....



for f in "$@"; do
    unzip "$f" -d "$(dirname "$f")"
done