列出在Mac OS X的Safari中安装的扩展,并说明是否已启用每个扩展


3

我想要一个列表,可以从中复制文本。

(不是首选项的屏幕截图。)

此信息不会出现在以下任何内容中:

  • 苹果浏览器
  • 雪豹中的系统探查器
  • Lion中的系统信息。

我想知道是否存在扩展名以列出其他扩展名,但是当我搜索时找不到任何合适的扩展名。

如果不是命令或扩展程序,也许有一个应用程序,但是同样:我找不到合适的东西。

(我可以将这个开头的问题发布给超级用户,在该超级用户中可能会使用命令管道大师,但我更喜欢询问他人,因为有人知道扩展程序或应用程序。)

背景

关闭扩展主机后,安装扩展的简单存在可能会导致某些版本的Safari花费比预期启动更长的时间。

由于这个原因和其他原因,有时有必要提供已安装扩展的全面列表,包括已禁用的扩展。



不,这是一个不同的问题。链接。我将在此处和此处编辑主题行,以激活已安装启用的单词。
Graham Perrin '02

2
您是否考虑只修改一个问题,说“列出已安装的扩展及其状态”?
塞斯特

在发布之前,我已经考虑了好几个星期。考虑到属性列表中的内容,目前我坚信将这两个问题混合使用将使人们不必要地提出一个单一的答案。一个问题与另一个问题之间的显着联系应该足以使人们根据自己的意愿建设性地思考一种协调的方法。请不要关闭这个问题。
Graham Perrin

1
不要这么认为...
nohillside

Answers:


5

这主要是解析输出defaults read ~/Library/Safari/Extensions/extensions并以用户友好的方式对其进行格式化的问题。结果实际上回答了您的两个问题:

defaults read ~/Library/Safari/Extensions/extensions | awk '
/Bundle Directory/ {
    split($0, t, /\"/);
    sub(".safariextension", "", t[4]);
    sub("-1", "", t[4]);
    bundle=t[4]
    e="disabled"
}
/Enabled/ {
    e="enabled";
}
/Hidden Bars/ {
    print bundle, "...", e
}' | sort --ignore-case

从中创建外壳脚本留给读者作为练习。

请注意,如果Apple决定更改手机的格式,则该功能很可能将停止工作。 ~/Library/Safari/Extensions/extensions


1
完美的答案,在我的系统上,它提供以下输出:启用YouTube5 1启用密码启用Footnotify。如果要避免前往终端,请将此脚本放入自动化服务中。
塞特

1
结果是一个子集,而不是扩展的完整列表。patrix,您想在另一个问题下重复这个答案吗?然后,我们可以在此处完善答案。非常感谢。
Graham Perrin

1
缺少哪些扩展名?
nohillside

1
在这里,列表中缺少所有禁用的对象。您是否在使用最新版本的Mac OS X?如果有帮助,则在pastebin.com/mWwt21hW上
Graham Perrin

2
啊,会以为“ Enabled = 0;”不会标识禁用的项目。Grrr,今晚去看看。
nohillside

0

对于后代,另一个简单的起点源自曾经是一个不同的问题:

启用的扩展列表,未排序

defaults read ~/Library/Safari/Extensions/extensions | grep -B 1 "Enabled = 1"

结果很快,但是很脏:

  • 对于找到的每一项,都有三行,一个就足够了
  • 在感兴趣的一行中,不需要前导"Bundle Directory Name" = "和尾随";
  • 一些捆绑软件目录名称包括-1-这也是不必要的。

对于macOS Sierra(Mac OS X 10.12)的预发行版内部版本16A319中的Safari

defaults read ~/Library/Safari/Extensions/extensions | grep -B 5 "Enabled = 1"

-1
touch ~/Library/Safari/Extensions/extensions
defaults read ~/Library/Safari/Extensions/extensions | awk '
/Bundle Directory/ {
    split($0, t, /\"/);
    sub(".safariextension", "", t[4]);
    sub("-1", "", t[4]);
    bundle=t[4]
    e=""
}
/Enabled/ {
    e="... enabled";
}
/Hidden Bars/ {
    print bundle, e
}' | sort --ignore-case

接受答案的这种变化包括扩展名,这些扩展名未标记为扩展名。个人喜好 -产生的空白使我一眼就能看到已启用的空白。


由此,我创建了一个简单的应用程序:Safari extension lister 1.0。再次感谢patrix接受的答案,没有它,我无法做到这一点。
Graham Perrin '02

1
扩展程序列表器看起来很酷。我想说的是,将输出的所有各种排序都排除在这个问题之外,因为这实际上是命令行文本解析课程,而不是核心问题的一部分。在哪里可以获得清单?
bmike

bmike你是对的,我对此发表了评论。不同于Ask Different,对此进行了一些改进,但目前还不能转化为单独的格式正确的问题。如果我偶尔对此答案进行更改,请原谅。最终我可能会删除它。
Graham Perrin

1
也许这是个更好的问题,因为这是我自己的问题-我如何才能以各种方式对列表进行排序,然后将其作为评论链接到您的主要答案?我不确定答案是否正确-仅是我的想法。您会开车,当然可以在这里留下很多答案-绝对没有错。
bmike

好奇的背景知识:pastebin.com/GsF30UsV-摘自CrashReporter生成的版本9崩溃日志。暂时忽略缺少禁用的扩展,这是理想的细节水平。但是,我们不希望使Safari浏览器崩溃以获取此类信息,因此我想从各种来源获取信息……
Graham Perrin 2012年

-1

一个简单的起点,与开始提问同时发布:

已安装扩展的简单列表,按字母顺序排序

defaults read ~/Library/Safari/Extensions/extensions | grep "Bundle Directory Name" | sort --ignore-case

结果很快,但是很脏:

  • 在感兴趣的一行中,不需要前导"Bundle Directory Name" = "和尾随";
  • 一些捆绑软件目录名称包括-1-这也是不必要的。

更好,意味着什么?
2012年
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.