Ist es möglich, eine Standardanwendung zum Öffnen von Dateien ohne Erweiterung festzulegen? Ich beziehe mich nicht auf Dateien mit versteckten Erweiterungen, sondern auf solche, denen eine Erweiterung vollständig fehlt – z . B. README
, CHANGELOG
, mbox
, usw.
„Öffnen mit“ => „Alle ändern“ für diese Dateien funktioniert nicht und gibt den unten gezeigten Fehler zurück:
Idealerweise möchte ich, dass das System versucht, alle diese Dateien in TextMate zu öffnen. Ich weiß, dass ich Dateien auf Dock-Symbole ziehen kann, um sie in bestimmten Apps zu öffnen, aber ich suche nach einer nahtloseren Lösung (zumal ich mein Dock automatisch ausblenden habe, was es viel umständlicher macht).
Ich bin mit dem QLStephen QuickLook- Plugin vertraut, das QuickLook für einige dieser Dateien aktivieren kann, aber ich würde eine Lösung mit Auswahl-/Kopierungs-/Bearbeitungsfunktionen bevorzugen.
Sie können eine Standardanwendung für public.plain-text in ~/Library/Preferences/com.apple.LaunchServices.plist hinzufügen.
defaults write com.apple.LaunchServices LSHandlers -array-add '{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.apple.textedit;}' '{LSHandlerContentType=public.unix-executable;LSHandlerRoleAll=com.apple.textedit;}'
Starten Sie neu, um die Änderungen zu übernehmen (abmelden und wieder anmelden reicht nicht).
Ich habe dies zu einer Duti- Konfigurationsdatei hinzugefügt:
com.apple.textedit public.plain-text all
com.macromates.textmate public.unix-executable all
Sie können dies mit Magic Launch tun. Nach der Installation können Sie Regeln zum Starten basierend auf verschiedenen Kriterien erstellen. Sie müssen eine Regel für Text-Apps erstellen, bei denen die Erweiterung leer ist. Sie können bei Bedarf eine komplexere Logik einrichten.
Schauen Sie sich RCDefaultApp (Freeware) an.
RCDefaultApp ist ein Einstellungsbereich von Mac OS X 10.2 oder höher, mit dem ein Benutzer die Standardanwendung festlegen kann, die für verschiedene URL-Schemata, Dateierweiterungen, Dateitypen, MIME-Typen und Uniform Type Identifiers (oder UTIs; nur MacOS 10.4) verwendet wird.
Ein bisschen spät, die Frage "Wie man das Öffnen von typlosen Dateien im Terminal vermeidet" ist ein bisschen alt. Jedoch:
Bei den oben genannten Lösungen müssen die bestehenden Regeln geändert werden, was unerwünschte Nebeneffekte haben kann. Ich finde es am einfachsten, die bestehenden Regeln für typlose Dateien und das Ändern von Dateiberechtigungen auszunutzen, um das gewünschte Ergebnis zu erzielen.
Insbesondere: Schalten Sie das ausführbare Bit in der Datei aus, da dies den Dateidienst anweist, mit dem Terminal mit "chmod -x Dateiname" zu öffnen, wobei Dateiname ... der Dateiname ist.
Dies kann bis zu einem gewissen Grad (mit Vorsicht) automatisiert werden: In meinem Fall habe ich viele README-Dateien auf einer Maschine. Ich kann "find" verwenden, um alle "README"-Dateien zu finden. Verwenden Sie dann "awk", um einen Befehl zu erstellen, um das ausführbare Bit auf allen wie folgt zu entfernen:
find /$HOME -iname 'README' | awk '{ print "chmod -x " $0 }'
Geben Sie das in das Terminal ein, wenn Sie überprüfen möchten, welche Dateien geändert werden: Die Ausgabe besteht aus einer Auflistung für jede gefundene README-Datei, die etwa so aussieht:
chmod -x //Users/jimpsmith/things/README
Und um all diese Berechtigungen zu ändern, führen Sie alle diese Zeilen aus, indem Sie sie wie folgt bashen:
find /$HOME -iname 'README' | awk '{ print "chmod -x " $0 }' | bash
Hüten Sie sich nur davor, Platzhalter zu großzügig zu verwenden und festzustellen, dass Sie versehentlich das ausführbare Bit von einigen ausführbaren Dateien entfernt haben, die fälschlicherweise übereinstimmen.
Ein einfacherer Weg wäre, einfach zu laufen
find /$HOME -iname 'README' -exec chmod -x '{}' \;`
oder (um zu sehen, was passieren würde)
find /$HOME -iname 'README' -exec echo chmod -x '{}' \;`
Update für Catalina:
defaults write ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist LSHandlers -array-add '{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;}' '{LSHandlerContentType=public.unix-executable;LSHandlerRoleAll=com.sublimetext.3;}'
Dies setzt den Standardwert auf Sublime Text 3
. Wenn Sie eine andere App haben möchten, müssen Sie sie einfach durch com.sublimetext.3
die App-ID Ihrer Lieblings-App ersetzen.
Herr Daniel
Denys Avilov