为什么创建点下划线._文件,如何避免使用它们?


156

我在不同位置的不同计算机上使用了不同的操作系统。我正在使用USB闪存盘保存文件(源代码等)。

我是Mac OS X的新手,现在我意识到有很多使用点下划线._前缀创建的文件。

问题

为什么要._创建文件?

他们的目的是什么?

如何避免它们?


2
我也讨厌他们,但我学会了与他们和平共处。
boehj 2011年

1
如果将闪存驱动器格式化为HFS +格式,那将抑制._文件的创建,但是我不知道未指定的其他操作系统上存在哪些选项来读取HFS +卷。
丹尼尔


这并不理想,但是ls --ignore="._*"作为别名或键绑定却大有帮助。
Sridhar Sarnobat,2016年

Answers:


107

您无法避免它们(但是请参阅Saeid Zebardast的dot_clean答案-如果需要,可以将其从目录中删除)。它们的创建是为了存储文件信息,否则这些文件信息将进入HFS +(Apple本机)或Unix / UFS卷的扩展属性中。在早期的Mac OS中,这将是资源派生。Finder文件操作将自动创建它们以存储图标信息,并且Time Machine将在其中存储一些信息,因此,如果您复制通过TM备份的文件,则该信息也会被复制。

(这是什么新鲜事,我注意到,XP及更高版本乱放以及各种turds,虽然不是非常的多。)


48
我同意,“草皮”是一个准确的描述:)
Drahcir 2014年

2
我注意到当我使用颜色标签(使用Path Finder 7)时,我的Mac在我的linux samba服务器上留下了麻烦。每个彩色项目都有一个._ <coloreditem>文件。
乔纳森·科马尔

5
在我们的linux samba文件服务器中,我们也有同样的情况。由于我们不需要文件的颜色元数据,因此我们在中使用了veto files = /._*/delete veto files选项,smb.conf以防止创建此类文件。相反,我们将.DS_STORE文件保留原样,因为它们对于设置文件排序很有用,并且每个目录只有一个。
盖洛斯2015年

5
至少在Windows上,您可以关闭此功能!
totymedli 2015年

7
赞成使用“粪便”来描述这一点。
乔治·P

60

您可以使用dot_clean命令删除或合并._文件:

dot_clean PATH_OF_FOLDER_OR_DRIVE

如果将文件移动到linux或已Git Bash安装在PC上,并且可以访问该find命令,则也可以执行以下操作:

find . -type f -name '._*' -delete

他们走了!


3
其他答案并没有真正回答“如何避免它们?” 部分。确实如此。谢谢!
忍者拳头

10
From man dot_cleanFor each dir, dot_clean recursively merges all ._* files with their corresponding native files according to the rules specified with the given arguments. By default, if there is an attribute on the native file that is also present in the ._ file, the most recent attribute will be used.此命令不仅会删除某些点文件,而且可能会覆盖每个文件夹的先前/本机属性。请谨慎使用。
威廉·伊斯特

26

.DS_Store和._文件的目的

http://diigo.com/0qiwp以获得http://lists.apple.com/archives/applescript-users/2006/Jun/msg00180.html的带注释的视图,其中Matt Deatherage(苹果公司前工程师)提供了解释。还要注明»关于.DS_Store的起源  (2006-10-01)。

由于我看到用户数据(文档内容)._丢失,而阻止或丢失了对方,因此,我同意:

  • 事物“消失于以太”是不可接受的。

._文件的目的

除了geekosaur接受的答案中概述目的以外,这里还有一些示例,这些示例说明了Apple和第三方应用程序在某些情况下如何使用需要 ._ ……


通过Finder复制期间的文件业务

请参阅我对堆栈溢出问题的回答


NeoOffice使用不赞成使用的代码

NO%F没有创建者代码的HFS类型代码为:

  • 仅在适当情况下谨慎使用。

NeoOffice示例1

NeoOffice 3.2.1 Patch 5保存到JHFS +:

[macbookpro08-centrim:~] gjp22% xattr -l /Users/gjp22/Desktop/product\ of\ NeoOffice\ 3.2.1\ Patch\ 5.docx 
com.apple.FinderInfo:
00000000  4E 4F 25 46 00 00 00 00 00 00 00 00 00 00 00 00  |NO%F............|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000020

NeoOffice示例2

NeoOffice 3.2.1 Patch 5保存到具有MS-DOS FAT32的USB闪存驱动器,由BlueHarvest进行清洁:

2012-05-12 06:42:08.349 BlueHarvest[31146]: Deleted ._product of NeoOffice 3.2.1 Patch 5.docx in /Volumes/FAT32/example.

NeoOffice示例3

NeoOffice 3.2.1 Patch 5保存到OS X挂载的卷中,文件系统类型为webdavSharePoint,而不是SharePoint,由BlueHarvest进行清理:

[macbookpro08-centrim:~] gjp22% mount | grep dav
https://www.box.net/dav/ on /Volumes/dav (webdav, nodev, noexec, nosuid, mounted by gjp22)
[macbookpro08-centrim:~] gjp22% xattr -l /Volumes/dav/product\ of\ NeoOffice\ 3.2.1\ Patch\ 5.docx 
[macbookpro08-centrim:~] gjp22% 
  • NeoOffice保存到webdav文件系统中不包含扩展属性
  • 不需要BlueHarvest。

提示:如果Microsoft Office无法webdav保存到Microsoft SharePoint(请参见下文),则NeoOffice成功。


Microsoft使用不推荐使用的代码

最新版本的Office 需要一个HFS类型代码HFS创建者代码时的格式,如Microsoft Word(.docx选择)。因此-似乎在保存到com.apple.FinderInfo扩展属性中不支持这些值的文件系统时:

  • 如果不创建多个._文件,Microsoft Office将无法可靠地保存。

Microsoft示例1

将Word 2011 14.2.1保存到OS X挂载的具有webdavBlueHarvest清理的文件系统类型(不是SharePoint)的卷:

May 11 18:32:49 macbookpro08 BlueHarvest[14649]: BlueHarvest started.
May 11 18:38:37 macbookpro08 BlueHarvest[14649]: Deleted ._Word Work File D_1.tmp in /Volumes/dav.
May 11 18:39:57 macbookpro08 BlueHarvest[14649]: Deleted ._Hello world, this is Microsoft.docx in /Volumes/dav.
May 11 18:42:28 macbookpro08 BlueHarvest[14649]: Deleted ._Hello world, this is Microsoft.docx in /Volumes/dav.

Microsoft示例2

Word 2011 14.2.2(120421)example.docx在相同环境中保存:

2012-05-12 08:01:07.692 BlueHarvest[41131]: Deleted ._Word Work File D_769960778.tmp in /Volumes/dav.

Microsoft示例3

Word 2011 14.2.2(120421)another.docx在同一环境中保存,然后退出然后重新打开,编辑然后保存,编辑然后关闭并保存:

2012-05-12 08:15:04.252 BlueHarvest[41131]: Deleted ._Word Work File D_.tmp in /Volumes/dav.
2012-05-12 08:18:48.735 BlueHarvest[41131]: Deleted ._another.docx in /Volumes/dav.
2012-05-12 08:21:12.658 BlueHarvest[41131]: Deleted ._Word Work File D_2.tmp in /Volumes/dav.

提示:文件系统类型是webdav因为SharePoint不支持以点.(句点)开头的文件名时,Microsoft Office 2011无法保存到Microsoft SharePoint 。请参阅“对在10.6中是否可以将SharePoint挂载为卷”提出不同的答案


类型和创建者代码:背景,Apple Developer

十多年前,苹果公司开始鼓励第三方开发人员远离类型代码和创建者代码。在文件系统编程指南的附录B中,文件类型和创建者代码建议该代码为:

通常不推荐使用,您可能会在旧版文件和应用中以及系统中的某些位置看到它们。



10

这些文件由操作系统创建,以加快搜索速度,存储有关文件夹首选项的元数据(操作系统使用的数据)等。Windows和OS X都具有这类文件。以下是从http://annoying-file-be-gone.snack.ws/faq.html中提取的这些文件的说明:

.DS_Store– Apple OS X操作系统中用于存储文件夹的自定义属性(例如图标的位置或背景图像的选择)的文件名(更多信息

.Spotlight-V100–该文件包含信息以加快“ Spotlight搜索”功能。如果您对该文件夹中的项目执行了另一次Spotlight搜索,则删除仅会强制将该信息重新索引。

.apDisk –该文件包含有关共享文件夹的信息,可以安全删除,因为如果Apple需要,它将自动重新创建。

.VolumeIcon.icns–如果该卷使用自定义图标而不是默认图标,则此文件用于存储该卷(USB设备)的图标。如果您希望设备继续使用此默认图标,或者要清除的文件夹/设备包含应用程序,则可能需要将此文件保留在系统中。附带说明一下,如果您想为设备创建自定义图标,则可以创建/下载.icns文件并将其重命名.VolumeIcon.icns并放置在文件夹/设备中。

.fseventsd–该文件用作文件系统事件守护程序的缓冲区。如果您正在使用监视此文件夹/设备的程序,则此文件可能用于存储临时数据。

.Trash.Trashes–这些文件夹用于保存已删除的项目,其方式与扩展坞中的“废纸'”图标相同。如果您的文件夹/设备上不需要此功能,则可以清理此文件夹以节省空间。

.TemporaryItems–当文件被复制/移动/附加时,操作系统使用此文件来保存临时数据。如果您正在运行正在访问要清理的文件夹/设备的任何程序,并且没有在复制或移动任何文件,则此文件可以仅保存旧数据进行缓存。


7

为了最大程度地减少非HFS +格式的驱动器上的点下划线文件的存在,可以使用BlueHarvest首选项窗格。


3
BlueHarvest是一款出色的产品,但某些第三方评论具有误导性。测试结果表明没有阻止创建。允许创建,并且BlueHarvest可以根据用户的喜好清除某些创建的内容。
格雷厄姆·佩林

5

问题是@geekosaur所说的,因此如果您使用Apple文件工具,则很难避免。

但是,如果您仅使用命令行工具和某些第三方工具,并且从未使用Finder写入USB,则不会创建它们。


该行为不仅限于Apple软件。示例:Microsoft Office 2011 ._保存到不支持HFS类型代码和创建者代码的文件系统时,需要文件。
Graham Perrin

5
@GrahamPerrin-我的意思是苹果公司用于复制等的文件工具-是的,任何使用文件分叉的应用程序(即苹果公司的库)都将拥有它们。如果使用仅使用BSD文件库的工具,则没有_文件。
user151019

3

用于find . -name "._*" -type f从本地路径归档文件,并用于find . -name "._*" -type f -delete删除所有文件。


欢迎询问不同!尽管您的答案显示了如何删除文件,但并未回答OP中的“为什么,如何以及如何避免”。
bjbk

@bjbk此答案说明如何删除文件,就像Saeid Zebardast极力支持的答案一样。我同意没有人真正提出如何避免它们,也没有提出它们为什么出现。
LarsH

1

这确实很简单,NTFS(当前Windows)FAT32(旧Windows)对于权限,分配给该文件的创建程序,创建日期,修改日期,标签,文件注释,图标及其他内容具有非常特定的数据结构。元数据。您还会注意到,相同的属性不会在其他操作系统中显示。(即IE创建日期可能是1990年1月1日,并且其他OS不能访问其他元数据。每当同时使用从HFS写入NTFS或FAT32的机器以及同时写入这些本地FAT32或NTFS的机器时。或._文件以及DS存储文件都会显示出来。这表明操作系统处理的上述各种元素的不兼容因素不一致,因此,如果您要在这些文件之间来回切换,则可能需要保留这些文件操作系统 使用这些文件。如果仅使用一个或另一个操作系统,请确保已正确格式化媒体(硬盘驱动器,SD卡等),或者确保驱动程序允许您的OS写入非操作系统固有的驱动器格式。(这些都可用于OSX以使其使用本机属性来写入NTFS和FAT32文件,以及对于Windows 7和8来使用本机属性来写入HFS +和EXFat(linux)驱动器。)它们不是免费的,但是如果您来回执行很多操作,可以减少驱动器中多余的重复数据。


-1

您可以通过FileZilla或类似的文件管理器删除它们。


不知道为什么不赞成这样做,因为大多数赞成的答案甚至都没有给出解决方案。我认为这是最简单的解决方案...由于._和.DS_Store是与Finder相关的文件,因此显而易见的解决方案是避免使用finder。我个人更喜欢使用Transmit,但是Filezilla是一个很好的免费替代品。
布莱恩·威利斯

3
我没有拒绝投票,但这是不受欢迎的建议,并且错过了要求预防而不是治疗的问题的意图。谁想花一半时间删除这些不断生成的文件?问:“我该如何处理我们城市的乱抛垃圾问题?” 答:“把它捡起来,放进垃圾桶,du。”
Sridhar Sarnobat

-1

为方便起见,我一直在使用以下方法。*消除闪存驱动器上的前缀文件:从Apple计算机上删除闪存驱动器,插入Windows机器中,在闪存驱动器中搜索“。 *。*”,然后在搜索显示带有._前缀的文件时将其删除。我从不删除.Trashes或.DS Store文件。到目前为止没有问题。我希望我不会给自己带来未来的问题。


1
手动删除?如果您是Mac用户,则拥有Windows计算机的所有权?我知道您只是在记录适合您的方法,但是我无法想象有人遵循您的方法。
Sridhar Sarnobat

-1

是的,我们中有些人同时在Mac和Windows计算机上使用过,而我曾经使用过这种方法。而且,如果您要使用USB带一堆.jpg来进行幻灯片播放,则必须摆脱那些令人讨厌的._文件才能做到。经过大量搜索之后,我找到了一种使用Mac删除._文件的方法:

使用终端:

  • ls -a 将列出所有文件,包括一个以 ._
  • 从目录中仅删除一个文件: rm -rf ._whateveryourfilenameis.jpg
  • 删除所有._文件:rm -rf ._*
  • 删除不需要的目录,包括 .Trashesrm -r .Trashes*

立即清理我的USB以用作电视输入


-2

删除与Git,Visual Studio和Xcode相关的._时要小心!我有一个包含很多.mov和图像的应用程序,这些“ ._”文件显示为已提交。我通过Visual Studio Team Explorer的更改将其删除,并且不知何故该项目文件夹从大约500MB膨胀到40GB而没有添加文件...仍然不确定到底发生了什么,但是我猜想它与删除这些文件有关,因此每次提交都被缓存了每个.mov和图片多次后,我才开始流行。在“查找器”>“所有文件”中,我看到每个.mov和.png重复了20-30次。

只需在您的.gitignore文件中添加“ ._ *”,当在iOS Xcode项目中使用TFS时,它们不会显示为更改后的文件。

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.