有什么方法可以防止Mac创建下划线下划线文件?


35

在工作中,我们让一位精通技术的客户实际为他提供了一些开发项目,为他们提供了一些帮助。但是,他使用自己的个人Macbook,并且在我们(Windows)网络上编辑文件时,他的Macbook总是会创建一堆不必要的元文件,我们最终将其删除。

例如,它在他打开的任何目录中创建一个名为.DS_Store的文件,以及他编辑的每个文件的“点下划线”文件。因此,例如,如果他正在编辑一个名为“ Main.php”的文件,那么他的Macbook将创建另一个名为“ ._Main.php”的文件。

我知道有几种方法可以防止创建.DS_Store文件,但是没有一种方法可以防止创建带有点下划线前缀的这些隐藏文件。

有没有办法在Mac上将其关闭?有什么方法可以防止它首先创建这些文件?


1
相关主题另一个解释._文件的用途。
丹尼尔·贝克

Answers:


18

让您的Mac用户安装BlueHarvest

蓝色丰收


6
这是一个商业软件。还要别的吗?
Artur Bodera

值得注意的是,Ross Tulloch(BlueHarvest的制造商)提供了一个名为BlueHarvest Lite免费版本。您必须为每个新的可移动驱动器选择并启用该功能是受限制的,但是一旦设置,它将使该驱动器不受垃圾影响。您可以在Mac App Store中找到它,但是我不确定它是否适用于网络驱动器。您可以尝试一下。
ADTC

5
应该注意的是,该解决方案并没有真正阻止Mac按照OP的要求创建._文件。弹出驱动器时,它仅删除._文件。对我来说,这意味着“加重伤害”。
某个用户

看起来精简版不再可用。下载链接仅会将您带到付费的App Store版本。
davecave

10

在Linux文件服务器或NAS设备上,您可以使用以下命令:

选项A. Samba的配置修改防止双方资源共享和.DS_Store文件:

否决文件= /._*/.DS_Store/

删除否决文件=是

(取决于您的发行版,配置文件位于/etc/samba/smb.conf或/etc/smb.conf)缺点:并非所有共享都由Linux驱动的NAS系统提供,或者大多数情况下您没有外壳访问权限。

选项B。 创建一个简单的Shell脚本,然后使用cron从一台连接的计算机上运行它。

找到/ YourNetworkShareLocation -name'._ *'-exec rm {} \;

将/ YourNetworkShareLocation替换为网络共享的安装位置,例如/ Volumes / ShareName或/ media / ShareName等。

缺点:这是蛮横的方式-对存储和网络都造成不必要的负载。但是,只需使用一点PowerShell技巧即可在Windows中轻松完成相同的操作。

免责声明:这不是我所说的“解决方案”,它是一种hack。但这可以帮助某人减少资源派生文件所带来的烦恼程度。


您的samba配置是否正确?这是一个/分隔的列表?
停止Harming Monica

@OrangeDog是的,它是一个/
分隔的

4

让他研究免费且名称恰当的Cleanup SMB Mess应用程序。开发人员说:

这个applescript小滴将通过删除所有卷上拖曳的所有“ ._ *”文件,.DS_Store文件和.Trashes文件夹来清理通过Mac OS X samba客户端安装的Windows共享。

我只用过拇指驱动器和MP3播放器,它按它说的去做。我猜想它必须扫描设备以清除垃圾,这在大型网络共享上可能很麻烦。但这只是我的推测。我建议问开发商。


3

使用Finder诸如以外的程序MuCommander浏览文件。(也适用于本地驱动器)。

在OS X lion中,此方法应允许默认访问,~/Library而无需修改设置或不按ALT。

MuCommanderSnow Leopard和上使用,Lion并且注意到HFS+ExtFat卷最终都没有随这些文件一起乱扔文件。

民间:还有另一个问题,文件大小...即使原始文件低于4096字节,许多资源分支至少也要4096字节,因此消除此问题确实有助于文件系统膨胀。

(例如:在Mac上下载文本文件:http : //www.gamers.org/pub/games/idgames/levels/heretic/gi/horror.txt自己看看)


2

您还可以在应用程序商店中使用一个名为“ Annoying File Be-Gone ” 的Mac应用程序,该应用程序可在菜单栏上运行且运行良好。


0

在我的QNAP NAS上,/ etc / smb.conf中的samba配置已经包含以下内容:

veto files = /.AppleDB/.AppleDouble/.AppleDesktop/:2eDS_Store/Network Trash Folder/Temporary Items/TheVolumeSettingsFolder/.@__thumb/.@__desc/:2e*/.@__qini/.Qsync/.@upload_cache/.qsync/.qsync_sn/.@qsys/.digest/
    delete veto files = yes

所以我将否决文件行编辑为:

veto files = /._*/.AppleDB/.AppleDouble/.AppleDesktop/:2eDS_Store/Network Trash Folder/Temporary Items/TheVolumeSettingsFolder/.@__thumb/.@__desc/:2e*/.@__qini/.Qsync/.@upload_cache/.qsync/.qsync_sn/.@qsys/.digest/

然后重新启动samba(这是一个原始的linux系统,所以我通过init.d做到了):

/etc/init.d/smb.sh restart



-3

这真的很容易,您不需要安装任何东西。

  1. 打开聚光灯(cmd + space)
  2. 输入“ Terminal.App”
  3. 然后按Enter(这将打开终端应用程序)
  4. 将此复制到您的clipbpoard(cmd + c):

    默认写com.apple.desktopservices DSntWriteNetworkStores true

  5. 并将其粘贴到终端(cmd + p)

  6. 按Enter
  7. 关闭终端(cmd + Q)
  8. 下次重新启动finder时,Mac将停止在网络存储上写入DS文件。

参考:http : //support.apple.com/kb/HT1629


4
该链接已经由OP自己发布,他知道如何禁止.DS_Store创建文件。但是,该方法不会阻止._文件的创建,因为即使启用了该DSDontWriteNetworkStores选项,它们也是操作系统始终写入的资源分叉(和其他文件)。
slhck
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.