如何停止在Mac上创建.DS_Store?[关闭]


162

我正在Mac上开发网站,每次创建一些文件夹(或该文件夹中的文件)时,都会在该文件夹中创建.DS_Store。

如何防止创建.DS_Store文件?


不喜欢:)我该用什么呢?
iWizard 2013年

1
@CroiOS Terminal + VIM
Greg

这是一种评论,因为没有真正的选择-理论上,您只能使用终端机或其他工具,例如编辑器(或我认为Path Finder作为文件浏览器),但实际上您会被这些文件所困扰
mmmmmm 2013年

7
只需忽略版本控制系统中的文件
millimoose 2013年

4
这个问题似乎离题,因为它与Apple的硬件和软件有关-最合适的选择是Ask Different。
Dan J

Answers:


36

通过使用mach_inject可以实现。看看.DS_Store的死亡

我发现使用仅执行任何操作的函数覆盖HFSPlusPropertyStore :: FlushChanges()可以成功阻止在Snow Leopard和Lion上创建.DS_Store文件。

DeathToDSStore源代码

注意:在10.11上,您不能将代码注入系统应用程序。


请提供一些bash,我可以将其复制并粘贴到我的shell中。该解决方案需要大量的文献资料。
samthebest,2015年

4
您可以使用DeathToDSStore.app
Parag Bafna

有2019年的解决方案吗?由于DeathToDSStore似乎不再适用于最新的MacOS ...
JKL,

@JKL我不知道任何有效的解决方案。
Parag Bafna,

44

请安装http://asepsis.binaryage.com/,然后重新启动Mac。

ASEPSIS将Mac上的所有.DS_Store重定向到/usr/local/.dscage

之后,您可以从Mac递归删除所有.DS_Store。

find ~ -name ".DS_Store" -delete
or
find <your path> -name ".DS_Store" -delete

每个Mac主要更新后,您都应重复此步骤。


1
对于Mac OSX 10.10,请注意,您应该升级Xcode命令行工具,然后在root等终端或sudo中手动运行以下命令xcrun --find codesign。手动接受许可条款和协议,您就可以继续进行无菌安装
myset 2014年

每个系统升级后都需要重新安装最新版本。
myset

1
“ Asepsis实现了系统范围的守护程序asepsisd,其目的是监视系统范围的文件夹重命名(或删除)并将这些操作镜像到前缀文件夹中”。这写在Asepsis的页面上。确实需要递归删除.DS_store文件吗?
vanguard69

“请安装无菌”请您告诉我一些bash命令,以便将它们复制并粘贴到我的shell中吗?
samthebest 2015年

3
仍然有一种方法可以让Asepsis在El Capitan下工作。我已经在此处记录了步骤:pixelcog.com/blog/2016/disable-ds_store-in-el-capitan
mikegreiling 2016年

41

注意“无菌已经不再处于主动开发状态,并且在OS X 10.11(El Capitan)和更高版本中得到支持。”


这是对您的选择的全面回顾Asepsis(提到的第二个解决方案)似乎正是您想要的,它将.DS_Store创建重新路由到统一缓存,而不是位于每个文件夹中。


6
万一链接变坏,该站点上列出的两个最有可能的选项是Asepsis(重定向创建的文件)和DeathToDSStore(阻止文件创建,禁用某些Finder功能),这两个问题都在本页的答案中进行了描述。其他选项涉及网络驱动器和外部驱动器-两者都只能解决部分问题。
sage 2014年

1
@emmanuel:这确实包括必要的部分:程序的名称和它提供的解决问题的特定功能。
内森·塔吉


2

将以下行放入“ .profile”文件中。

打开.profile文件并复制此行

find ~/ -name '.DS_Store' -delete

当您打开终端窗口时,它将自动为您删除.DS_Store文件。


9
在登录时运行它会使事情变慢,所以我只是使用了这个别名:alias nomore='find ./ -iname .DS_Store -delete'
BenjaminGolder 2014年

6
哇。真是个好主意。不。想象一下,有许多文件夹和许多.DS_Store文件,并想象每次外壳启动时都要遍历所有与.DS_Store匹配的文件。我知道这个问题已经过时了,但我认为应该写下来,这不是一个好主意。
thonixx

3
那么,[/具有讽刺意味的]是关闭您的讽刺意味还是结束您的讽刺意味使其开启?
康纳

当mac在磁盘上搜索数百个K文件时,这是一种消除(生产)时间的好方法。
javadba

-7

当您选择系统向您显示隐藏文件时,此文件开始出现:$ defaults写com.apple.finder AppleShowAllFiles是如果您运行此命令,则$ defaults写com.apple.finder AppleShowAllFiles否使用终端


2
该问题询问如何停止创建文件,而不是如何隐藏它们。
史蒂夫·布佐纳斯

-7

功能

find ~/ -name '.DS_Store' -delete

,暂时删除了.DS存储文件。但不确定文件是否会在Mac上恢复。我也注意到一些奇怪的东西,“ DS_Store”在安装“ ATOM”后开始出现在Mac上。因此,在安装它们之前,请确保确保正确扫描了您的第三方软件。最好


5
.DS_Store文件由OSX Finder中创建
弗兰Marzoa

1
该问题询问如何停止创建文件。这个答案是如何删除它们。此外,ATOM不创建文件。在Finder访问一个文件夹来存储图标位置,选择查看该文件夹,背景图像等。当应用程序创建它们 DS_Store,DS是桌面服务。
史蒂夫·布佐纳斯

-12

如果要使.DS_Store文件不可见(它们仍然存在,但看不到),请在“终端”窗口中运行以下命令:

defaults write com.apple.finder AppleShowAllFiles FALSE; killall Finder

这会将系统默认设置为停止在桌面和其他位置显示这些文件。它还将重新启动Finder,以使此更改可见(尤其是在您的桌面上)。


5
那不是在回答所提出的问题。
没人

隐藏隐藏文件的显示并不能消除创建.DS_Store文件的麻烦。这是一个可怕的答案。
MattBoothDev

该问题询问如何停止创建文件。此解决方案仅在Finder中隐藏它们(和其他文件)。
史蒂夫·布佐纳斯
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.