Paketinhalt über die Befehlszeile anzeigen

14

Wenn ich am Terminal arbeite open ., öffne ich häufig mit dem Befehl ein Finder-Fenster, in dem das aktuelle Arbeitsverzeichnis angezeigt wird. Wenn das aktuelle Verzeichnis jedoch tatsächlich ein Paket ist, z. B. eine .appAnwendung oder eine .vmwarevmvirtuelle Maschine, open .wird stattdessen die Anwendung oder die virtuelle Maschine gestartet.

Wie kann ich ein Finder-Fenster öffnen, in dem der Inhalt eines bestimmten Pakets angezeigt wird?

Ich habe es versucht open -A /System/Library/CoreServices/Finder.app ., aber das hat nicht funktioniert.

Andrew
quelle
Nicht an einem Mac zu testen, aber hast du es einfach mit ausprobiert cd /System/Library/CoreServices/Finder.app? Wenn es nicht funktioniert, entferne ich den Kommentar.
stuffe
Ich würde wetten, dass eine Vermutung open -a Finder .nicht funktioniert, da beim Doppelklicken auf ein App-Bundle im Finder die App gestartet wird :).
Jason Salaz

Antworten:

3

Die Verwendung open -Rfür die erste Datei im Bundle würde auch dann funktionieren, wenn das Bundle kein ContentsVerzeichnis hat:

reveal() (
  shopt -s nullglob
  for f; do
    a=("$f"/*)
    [[ -d $f && ${#a} != 0 ]] && open -R -- "${a[0]}" || open -R -- "$f"
  done
)

Es könnte jedoch einfacher sein, nur open -Rden Pfad einer Datei innerhalb des Bundles einzugeben. Sie können binden menu-completein , .inputrcum es einfacher zu machen , den Weg der ersten Datei einzufügen.

Lri
quelle
9

Sie können einfach cdin das Paket einsteigen, um es im Terminal open Contentszu öffnen und dann den Inhalt im Finder zu öffnen.

Um beispielsweise den Inhalt von Safari.app im Finder zu öffnen, können Sie Folgendes ausführen:

cd /Applications/Safari.app
open Contents
grg
quelle
1
Nein, nicht alle Pakete haben einen ContentsOrdner - .vmwarevmvirtuelle Maschinen sicher nicht.
Andrew
Nur Dateien .
Andrew
Eine andere Art von Bundle ohne ContentsOrdner ist das .xcodeprojBundle. Ein Beispiel finden Sie hier .
Andrew
2
Das Inhaltsbit ist nur ein Beispiel. cdSie suchen nach einem Eintrag in der APP-Datei, unabhängig vom Inhalt des App-Bundles.
stuffe
1
open -R *

öffnet das Paket im Finder. Aber Vorsicht: Es werden auch alle enthaltenen Dateien und Ordner ausgewählt. Im Allgemeinen ist dies für Sie in Ordnung, da dies meistens nur der Fall ist Contents.

Sieht aus wie das: Schalalalalala

Max Ried
quelle
2
Das Öffnen von * scheint eine sehr schlechte Idee zu sein, insbesondere, ohne die Leute zu warnen, was im falschen Verzeichnis geschehen würde (und wie würde jemand, der keine Verzeichnisse erhält, wissen, in welchem ​​Verzeichnis er sich befindet). Sollte dies vielleicht ein Kommentar zu dieser anderen Antwort sein ?
bmike
@bmike Ich denke, Sie haben die Option -R vergessen ...
Max Ried
0
open -R .

Von

man open

-R, --reveal Wählt im Finder aus, anstatt zu öffnen.

Ajith
quelle
-1

Klicken Sie im Finder mit der rechten Maustaste auf die Anwendung und wählen Sie "Show Contents". Dadurch wird die App geöffnet und Sie können durch die beigefügten Ordner navigieren.

jmh
quelle