有没有办法(例如对Finder进行二进制入侵)阻止它在LOCAL Volumes上创建.DS-Store?
我正在使用Leopard,因此这些无效:
- 无菌(需要Lion)
- TotalFinder(需要Snow Leopard)
另外,BlueHarvest会减慢我的计算机的速度。
有没有办法(例如对Finder进行二进制入侵)阻止它在LOCAL Volumes上创建.DS-Store?
我正在使用Leopard,因此这些无效:
另外,BlueHarvest会减慢我的计算机的速度。
Answers:
以我的经验,BlueHarvest是同类中最好的。从技术上讲,这不是问题的答案;它可以删除但不能阻止.DS_Store
文件。
如果BlueHarvest有效但不适合您的用例,则很难为您的问题提供可接受的答案。
如果您没有可接受的第三方解决方案,则必须使用Leopard集成的组件...
通过避免不想保存的视图,可以防止.DS_Store
文件的创建。
大多数用户会发现很难以这种方式束缚自己,但这是在问题范围内的真正答案。
http://diigo.com/0qiwp,以获得http://lists.apple.com/archives/applescript-users/2006/Jun/msg00180.html的带注释的视图,其中Matt Deatherage(Apple的前工程师)进行了解释.DS_Store
,其他文件类型。
我没有找到阻止创建它们的任何方法,但是您可以使用脚本自动删除它们:
#!/bin/sh
find ~ -name .DS_Store -exec /bin/rm -f -- {} \;
exit 0
每隔X分钟通过launchd
或运行一次cron
。在拥有数年历史的iMac上运行几乎不需要时间。它只会搜索您的$ HOME(〜),但这就是大多数内容所在的位置。如果要在整个驱动器中删除它们,请将〜更改为/,但这将花费更长的时间才能运行,因此请相应地调整频率。
find ~ -name .DS_Store -delete
。并且不要忘记该-name
标志-如果没有该标志,该命令将应用于~
and中的所有文件./.DS_Store
。
为了防止显示这些难看的.DS_Store文件,似乎有一个相对较新的选项可以干净地执行此操作,不仅适用于网络驱动器,例如:
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
而且还适用于USB连接的卷:
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
相对于OP的问题标题,这是没有黑客的最佳解决方案,因为它不仅解决了网络异常,而且对大多数连接的磁盘也产生了影响。对于大多数在不同环境之间共享USB记忆棒等设备的用户而言,这可能是最大的烦恼。它仅使用Apple提供的选件,不会以任何方式干扰正常操作。
相对于OP主体中解释的具体情况,它的价值有限,因为此USB选项仅在OS X / macOS的更高版本中可用。此外,这仍然不能解决.DS_Store
在内部磁盘上创建磁盘的麻烦,在内部磁盘上创建磁盘也很麻烦。尽管在那个地方,它们实际上可以达到某种目的。
适用于大多数版本的Mac操作系统的更全面的解决方案(尽管更棘手)如下所示:要完全消除所有磁盘上的这种讨厌的行为-并使用二进制补丁程序/代码注入器(例如OP渴望–存在DeathToDSStore / 及其来源。
这两个选项均假定任何人仍在使用Finder ...使用其他文件管理器也可以解决此问题。有许多竞争者可以替换Finder,以在macOS上进行文件管理。该字段中排名靠前的两个是Pathfinder或XFile。
尝试以下命令:默认在终端中写入com.apple.desktopservices DSntWriteNetworkStores true。它似乎为我工作。
我制作了一个更高效的脚本(打算作为守护程序连续运行),它将find
在开始时执行一次擦除现有的文件,并通过fsevents实时捕获新文件。因此,它们在创建时将立即被删除,并且资源使用率非常低。AFAIK这是在不禁用SIP的情况下摆脱它们的最佳方法。
在这里-https://github.com/magicgoose/DS_Store-Kill