Wählen Sie eine Standard-App zum Öffnen von Dateien ohne Erweiterung?

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:

Öffnen mit / Alle ändern -- Fehler

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.

Antworten (5)

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
Das sieht gut aus, mehr Details darüber, was hier auf höchster Ebene vor sich geht, wären schön. Ein Intro, was in Schritt 1 passiert usw.
Falls jemand Visual Studio Code als Standardeditor verwenden möchte, verwenden Sie in der obigen Antwort com.microsoft.VSCode anstelle von com.apple.textedit . Oder verwenden Sie für Sublime Text 4 com.sublimetext.4 .

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.

http://michelf.com/software/magic-launch/

Sie haben Recht - ich musste eine benutzerdefinierte Regel erstellen, um Dateien mit leeren Erweiterungen zu handhaben ... aber es scheint funktioniert zu haben - danke! Der einzige Nachteil ist, dass es 13 $ kostet. Ich habe kein Problem damit, für gute Apps zu bezahlen, aber das ist ein bisschen happig, wenn man bedenkt, dass ich nur nach dieser einen Funktion suche.
die url wird nicht gefunden
lass es mich für dich googeln: oneperiodic.com/products/magiclaunch

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.

Mir gefällt, dass es kostenlos ist, aber es gibt keine Möglichkeit, eine Standard-App für Dateien ohne Erweiterung festzulegen. Die Verwendung von MIME-Typen kann dies etwas annähern, ändert dann jedoch die Standard-App aller Textdateien, nicht nur derjenigen ohne Erweiterung. Danke trotzdem für den Vorschlag - vielleicht hilft es jemand anderem.

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 '{}' \;`
Ich verstehe irgendwie nicht, wie dies das in der Frage angegebene Problem löst. Bei README, ChangeLog etc. ist das x-Bit normalerweise sowieso nicht gesetzt. Das Problem ist, dass OS X auf Suffixe angewiesen ist, um die Anwendung zu identifizieren, mit der Dateien geöffnet werden sollen, und diese Dateien haben kein Suffix.

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.3die App-ID Ihrer Lieblings-App ersetzen.

habe es versucht, aber es funktionierte nicht auf Catalina 10.15.6 und sublime 3.2.2 woher wusstest du, dass com.sublimetext.3 korrekt ist?