Ich suche über das Terminal nach einer Möglichkeit, um zu ändern, ob im Finder eine bestimmte Dateierweiterung angezeigt wird oder nicht.
$ hideextension ~/music/somesong.mp3
Ohne Get Info öffnen und das Kontrollkästchen ändern zu müssen, da es sehr mühsam ist.
Ich plane, es in ein Skript zu integrieren, das ich über eine Verknüpfung mit FastScripts aufrufe. Ich würde gerne versuchen, mich von GUI-Skripten fernzuhalten, da dies unsauber erscheint, obwohl alle Ideen, wie dies erreicht werden kann, willkommen sind.
macos
command-line
file-management
file-extension
joshua.thomas.bird
quelle
quelle
Antworten:
Die einzige wirkliche Möglichkeit , dies über die GUI zu ändern , ist zu klicken ausblenden Erweiterung im Finder Info - Fenster. Wenn Sie dies aktivieren, wird das
com.apple.FinderInfo
erweiterte Attribut geändert , das Sie normalerweise nicht bearbeiten können - zumindest nicht so einfach. Wir können jedoch ein Tool verwenden, um dies für uns zu tun.Damit das Folgende funktioniert, muss die Option Alle Dateierweiterungen anzeigen in den Einstellungen von Finder deaktiviert sein.
Über AppleScript
AppleScript bietet diese Funktionalität mit dem
set extension hidden
Befehl. Sie benötigen offensichtlich einalias
zu einem Dateiobjekt. Wir können das zum Beispiel durch einen Dialog erreichen. Hier ist nur ein minimales Arbeitsbeispiel.Zum Umkehren einfach
true
mitfalse
hier tauschen . Der vollständige Aufruf lautet dann zum Beispiel:Sie können dies auch direkt aus einer Skriptdatei ausführen (danke @DanielBeck für den Zusatz):
Speichern Sie dies als
filename.scpt
und führen Sie es von der Kommandozeile aus mit:Mit dem
SetFile
BefehlWenn Sie Xcode installiert haben, erhalten Sie die
SetFile(1)
Binärdatei, die genau das tut, was Sie wollen (und ein paar weitere Funktionen in Bezug auf Dateiattribute bietet):Erweiterung ausblenden:
Erweiterung erneut anzeigen:
quelle
on run argv [newline] tell application "Finder" to set extension hidden of (POSIX file (first item of argv) as alias) to true [newline] end run
Verwenden Sie asosascript filename.scpt targetfile
.SetFile
ist veraltet seit Xcode 6 . Auch der Link zur Manpage ist abgelaufen.Danke slhck für deine Antwort, es hat mir geholfen, das zu erledigen, was ich wollte.
Da ich Verknüpfungen mag, habe ich einen "Run Shell Script" -Dienst durch Automator erstellt.
Dann ging ich zu Finder -> Diensteinstellungen und fügte eine Verknüpfung zum Dienst hinzu.
Ich hoffe es hilft. =)
quelle
STATUS=
Zeile fehlt am Ende ein Back-Tick. Außerdem hat der Befehl auf meinem Mac + XCodeGetFileInfo
ein Großbuchstaben G.Es gibt eine weitere Option, wenn Sie die derzeit ausgeblendete Dateierweiterung anzeigen möchten: Finder speichert diese Option "Erweiterung ausblenden" im
com.apple.FinderInfo
erweiterten Dateiattribut. Sie können dies selbst überprüfen, indem Sie diesen Befehl ausführen, der alle erweiterten Attribute auflistet:Um die Erweiterung anzuzeigen, können Sie das folgende Attribut entfernen:
Beachten Sie jedoch, dass Finder in diesem Attribut andere Metadaten wie die Tag-Farbe speichert , sodass diese Metadaten verloren gehen. Und da das Attribut binär ist, können Sie es nicht einfach ändern.
quelle
Um nur ein Argument in der Befehlszeile (
$ hideextension ~/music/somesong.mp3
) zu haben, können Sie Ihr AppleScript zu einem Shell-Skript machen. Es ist möglich, im shebang (#!/usr/bin/osascript
) osascript wie im folgenden Code zu verwenden. Fortfahren :#!/usr/bin/osascript
) am Anfang der Datei hinzuMachen Sie es im Terminal ausführbar:
Jetzt können Sie es ausführen:
Also, der Code zur Veranschaulichung:
quelle
Auch wenn
SetFile
Xcode 6 veraltet ist, ist es in XCode 11 immer noch verfügbar. Sie können also davon ausgehen, dass es auf absehbare Zeit in den Befehlszeilentools verbleibt ...https://download.developer.apple.com/Developer_Tools/Command_Line_Tools_for_Xcode_11/Command_Line_Tools_for_Xcode_11.dmg
quelle