选择默认应用程序打开没有扩展名的文件?


26

是否可以设置默认应用程序以打开没有扩展名的文件?我不是指隐藏扩展名的文件,但这些完全缺乏的延伸-例如READMECHANGELOGmbox

这些文件上的“打开方式”=>“全部更改”不起作用,返回如下所示的错误:

打开/全部更改 - 失败

理想情况下,我希望系统尝试在TextMate中打开所有这些文件。我知道我可以将文件拖到Dock图标上以在特定应用程序中打开它们,但我正在寻找一种更加无缝的解决方案(特别是因为我的Dock自动隐藏,这使得它更加麻烦)。

我熟悉QLStephen QuickLook插件,它可以为其中一些文件启用QuickLook,但我更喜欢具有选择/复制/编辑功能的解决方案。

Answers:


12

您可以在〜/ Library / Preferences / com.apple.LaunchServices.plist中为public.plain-text添加默认应用程序。

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

5
这看起来很好,更多关于顶层发生的事情的细节会很好。介绍,步骤1中发生的事情等等
MrDaniel

4

您可以使用Magic Launch执行此操作。安装后,您可以根据各种条件创建要启动的规则。您需要为扩展名为空的文本应用创建规则。如果需要,可以设置更复杂的逻辑。

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


你是对的 - 我必须创建一个自定义规则来处理带有空白扩展名的文件......但它似乎有效 - 谢谢!唯一的缺点是它是13美元。我支付好的应用程序没有问题,但考虑到我正在寻找这个功能,这有点陡峭。
奥斯汀

0

看看RCDefaultApp(免费软件)。

RCDefaultApp是Mac OS X 10.2或更高版本的首选项窗格,允许用户设置用于各种URL方案,文件扩展名,文件类型,MIME类型和统一类型标识符(或UTI;仅限MacOS 10.4)的默认应用程序。


1
我喜欢它是免费的,但没有办法为没有扩展名的文件设置默认应用程序。使用MIME类型可以稍微近似,但随后它会更改所有文本文件的默认应用程序,而不仅仅是那些没有扩展名的文件。无论如何,谢谢你的建议 - 也许它会帮助别人。
奥斯汀

0

有点晚了,“如何避免在终端中打开无类型文件”这个问题有点老了。然而:

上述解决方案涉及改变现有规则,这些规则可能产生不必要的副作用。我发现最简单的方法是利用无类型文件的现有规则并更改文件权限以获得我想要的结果。

具体来说:关闭文件上的可执行位,因为这是告诉文件服务打开终端的“chmod -x filename”,其中filename是文件名。

这可以在某种程度上自动化(谨慎):在我的情况下,我在机器上有很多README文件。我可以使用“find”查找所有“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 '{}' \;`

1
我不知道怎么解释这是如何解决问题中陈述的问题。README,ChangeLog等通常没有将x位设置为以任何方式启动。问题是OS X依赖后缀来识别打开文件的应用程序,并且这些文件没有后缀。
nohillside
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.