有没有一种方法可以防止创建那些令人讨厌的.DS_Store文件?


14

有没有办法(例如对Finder进行二进制入侵)阻止它在LOCAL Volumes上创建.DS-Store?

我正在使用Leopard,因此这些无效:

另外,BlueHarvest会减慢我的计算机的速度。


1
请参阅:阻止MacOS生成。*和._ *文件 - 您为何不希望使用这些文件?
slhck 2011年

@slhck:blueharvest可以工作,但是会降低我的计算机速度。我在寻找的东西像这样
kinokijuf

我忘记了TotalFinder仅适用于≥10.6,对不起。
slhck

如果仅针对Leopard和更早版本,则该问题将过于局限。答案可能只是在适用的地方提到了当前最低或最高支持的版本。
Lri 2011年

Answers:


3

第三方解决方案

以我的经验,BlueHarvest是同类中最好的。从技术上讲,这不是问题的答案;它可以删除但不能阻止.DS_Store文件。

如果BlueHarvest有效但不适合您的用例,则很难为您的问题提供可接受的答案。

如果您没有可接受的第三方解决方案,则必须使用Leopard集成的组件...

没有第三方解决方案:限制您使用Finder

通过避免不想保存的视图,可以防止.DS_Store文件的创建。

大多数用户会发现很难以这种方式束缚自己,但这是在问题范围内的真正答案。

http://diigo.com/0qiwp,以获得http://lists.apple.com/archives/applescript-users/2006/Jun/msg00180.html的带注释的视图,其中Matt Deatherage(Apple的前工程师)进行了解释.DS_Store,其他文件类型。


6

我没有找到阻止创建它们的任何方法,但是您可以使用脚本自动删除它们:

#!/bin/sh

find ~ -name .DS_Store -exec /bin/rm -f -- {} \;

exit 0

每隔X分钟通过launchd或运行一次cron。在拥有数年历史的iMac上运行几乎不需要时间。它只会搜索您的$ HOME(〜),但这就是大多数内容所在的位置。如果要在整个驱动器中删除它们,请将〜更改为/,但这将花费更长的时间才能运行,因此请相应地调整频率。


1
您也可以使用find ~ -name .DS_Store -delete。并且不要忘记该-name标志-如果没有该标志,该命令将应用于~and中的所有文件./.DS_Store
Lri 2011年

1
我知道我可以使用脚本,但是您的回答无法回答他的问题。
kinokijuf 2011年

问题的答案是“否”。没有阻止它们创建的方法(网络共享除外,这也不是问题)。这个答案试图达到相同的最终结果。如果SE有一个称为“解决方法”的答复类别,我会放在它下面。这当然是不差的“答案”不是一个守护进程连接到一个框架(< asepsis.binaryage.com/> ),并且比侵入系统二进制更安全,它可以运行在Mac OS X中的任何版本
TJ Luoma

除了无法达到相同的最终结果。Blueharvest是一个更好的解决方法(最终结果相同,但计算机运行会受到干扰)。驾驶员IIRC也是无菌的。
kinokijuf 2011年

1
@kinokijuf,请降低应有的态度。当有人为您提供免费帮助时,您就不必批评它。只需简单地说一遍,这不是您想要的,这很公平,但是TJ Luoma的辩护(您令人遗憾地使之必要)足以让您闭嘴。真是的
r_alex_hall

4

为了防止显示这些难看的.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上进行文件管理。该字段中排名靠前的两个是PathfinderXFile


2
+1表示USBStores命令(我不知道该命令!)以及DeathToDSStore。
Wowfunhappy

3

尝试以下命令:默认在终端中写入com.apple.desktopservices DSntWriteNetworkStores true。它似乎为我工作。


4
它仅适用于网络,不适用于本地卷。
kinokijuf 2011年

你是对的。对此我感到抱歉。

4
这是唯一可以看到.DS_Stores令人讨厌的真实情况。它们默认情况下隐藏在Mac OS上,对于保存单个文件夹的视图设置至关重要
Alexander-Reinstate Monica

2
但是我不想保存视图设置。
kinokijuf 2011年

1

我制作了一个更高效的脚本(打算作为守护程序连续运行),它将find在开始时执行一次擦除现有的文件,并通过fsevents实时捕获新文件。因此,它们在创建时将立即被删除,并且资源使用率非常低。AFAIK这是在不禁用SIP的情况下摆脱它们的最佳方法。
在这里-https://github.com/magicgoose/DS_Store-Kill

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.