Выбрать приложение по умолчанию для открытия файлов без расширения?

Можно ли установить приложение по умолчанию для открытия файлов без расширения? Я имею в виду не файлы со скрытыми расширениями, а файлы без расширения, например README, CHANGELOG, mbox, и т. д.

«Открыть с помощью» => «Изменить все» для этих файлов не работает, возвращая ошибку, показанную ниже:

Открыть с помощью / Изменить все -- Ошибка

В идеале я хотел бы, чтобы система пыталась открыть все такие файлы в TextMate. Я знаю, что могу перетаскивать файлы на значки Dock, чтобы открывать их в определенных приложениях, но я ищу более простое решение, чем это (особенно с учетом того, что у меня есть автоматическое скрытие Dock, что делает его намного более громоздким).

Я знаком с плагином QLStephen QuickLook, который может включать QuickLook для некоторых из этих файлов, но я бы предпочел решение с возможностями выбора/копирования/редактирования.

Ответы (5)

Вы можете добавить приложение по умолчанию для public.plain-text в ~/Library/Preferences/com.apple.LaunchServices.plist.

defaults write com.apple.LaunchServices LSHandlers -array-add '{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.apple.textedit;}' '{LSHandlerContentType=public.unix-executable;LSHandlerRoleAll=com.apple.textedit;}'

Перезапустите, чтобы применить изменения (выйти из системы и снова войти недостаточно).

Я добавил это в файл конфигурации duti :

com.apple.textedit public.plain-text all
com.macromates.textmate public.unix-executable all
Это выглядит хорошо, было бы неплохо получить больше подробностей о том, что здесь происходит на высшем уровне. Вступление, что происходит на шаге 1 и т. д.
Если кто-то хочет использовать Visual Studio Code в качестве редактора по умолчанию, используйте com.microsoft.VSCode вместо com.apple.textedit в ответе выше. Или для Sublime Text 4 используйте com.sublimetext.4 .

Вы можете сделать это с помощью Magic Launch. После установки вы можете создать правила для запуска на основе различных критериев. Вам нужно создать правило для текстовых приложений, где расширение не указано. Вы можете настроить более сложную логику, если вам это нужно.

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

Вы правы — мне пришлось создать собственное правило для обработки файлов с пустыми расширениями… но, похоже, оно сработало — спасибо! Единственным недостатком является то, что это 13 долларов. У меня нет проблем с оплатой хороших приложений, но это немного круто, учитывая, что я ищу только эту одну функцию.
URL-адрес не найден
позвольте мне погуглить для вас: oneperiodic.com/products/magiclaunch

Взгляните на RCDefaultApp (бесплатное ПО).

RCDefaultApp — это панель настроек Mac OS X 10.2 или более поздней версии, которая позволяет пользователю установить приложение по умолчанию, используемое для различных схем URL-адресов, расширений файлов, типов файлов, типов MIME и универсальных идентификаторов типов (или UTI; только MacOS 10.4).

Мне нравится, что это бесплатно, но нет возможности установить приложение по умолчанию для файлов без расширения. Использование типов MIME может несколько приблизить это, но тогда оно изменяет приложение по умолчанию для всех текстовых файлов, а не только для тех, у которых нет расширения. В любом случае спасибо за предложение - возможно, оно поможет кому-то еще.

Немного поздно, вопрос «Как избежать открытия бестиповых файлов в терминале» немного устарел. Однако:

Приведенные выше решения включают изменение существующих правил, что может иметь нежелательные побочные эффекты. Я считаю, что проще всего использовать существующие правила для бестиповых файлов и изменения прав доступа к файлам, чтобы получить желаемый результат.

В частности: отключите исполняемый бит в файле, потому что это то, что говорит файловой службе открывать с помощью терминала с «chmod -x имя файла», где имя файла ... имя файла.

Это можно до некоторой степени автоматизировать (с осторожностью): в моем случае у меня на машине много файлов README. Я могу использовать «найти», чтобы найти все файлы «README». А затем используйте «awk», чтобы создать команду для удаления исполняемого бита на всех из них следующим образом:

find /$HOME -iname 'README' | awk '{ print "chmod -x " $0 }'

введите это в терминал, если вы хотите проверить, какие файлы будут изменены: вывод будет состоять из списка для каждого найденного README, который выглядит примерно так:

chmod -x //Users/jimpsmith/things/README

И чтобы изменить все эти разрешения, выполните все эти строки, загрузив их в bash следующим образом:

find /$HOME -iname 'README' | awk '{ print "chmod -x " $0 }' | bash

Просто остерегайтесь слишком свободного использования подстановочных знаков и обнаружения того, что вы случайно удалили исполняемый бит из некоторых исполняемых файлов, которые ошибочно совпадают.


Проще всего было бы просто запустить

find /$HOME -iname 'README' -exec chmod -x '{}' \;`

или (чтобы посмотреть, что произойдет)

find /$HOME -iname 'README' -exec echo chmod -x '{}' \;`
Я почему-то не понимаю, как это решает проблему, указанную в вопросе. README, ChangeLog и т. д. обычно не имеют установленного бита x для начала. Проблема в том, что OS X полагается на суффиксы для идентификации приложения для открытия файла, а эти файлы не имеют суффикса.

Обновление для Каталины:

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;}'

Это устанавливает по умолчанию значение Sublime Text 3. Если вы хотите иметь любое другое приложение, вам нужно просто заменить com.sublimetext.3его идентификатором вашего любимого приложения.

попробовал, но это не сработало на Catalina 10.15.6 и возвышенном 3.2.2, как вы узнали, что com.sublimetext.3 правильный?