从 SMB 共享中出现不需要的 ._ 文件

从 SMB 共享中出现不需要的 ._ 文件

在工作中,我们都使用 Mac,并设置了 SMB 文件服务器。

不知何故,奇怪的隐藏文件不断出现,尤其是在我们的 Mac 和文件服务器之间同步时。我不知道是什么创建了它们以及为什么创建它们。对于名为 index.html 的文件,名为 的隐藏文件。index.html 已创建。有时文件夹中的所有文件都有。等价物,例如 bear.jpg 也将作为一个名为 ._bear.jpg 的隐藏文件存在。

现在,这些隐藏文件不是问题,直到您开始复制文件夹,或执行 rar/zip 操作,或使用版本控制系统。您不希望这些隐藏文件扰乱系统。

谁知道这些文件为什么在这里,以及是否有一个命令可以递归地从文件夹中删除这些文件?

这是一个例子:第三个文件 ._index.html 是由某些东西创建的,但我不知道是什么或为什么。

total 16
drwx------   7 wolfr  staff   238 Dec  9 13:34 .
drwx------   5 wolfr  staff   170 Dec  9 13:17 ..
-rwx------   1 wolfr  staff  4096 Dec  9 13:34 ._index.html
drwx------  14 wolfr  staff   476 Dec  9 13:27 css
drwx------   6 wolfr  staff   204 Dec  9 13:27 images
-rwx------@  1 wolfr  staff  3520 Dec  9 13:34 index.html
drwx------   4 wolfr  staff   136 Dec  9 13:27 js

这是我用来递归删除 .svn 文件的命令,我如何修改它以递归删除与 ._* 匹配的文件?

find . -type d -name '.svn' -print0 | xargs -0 rm -rdf

编辑:我猜命令是

find . -name '._*' -print0 | xargs -0 rm -rdf

答案1

这就是 MacOS 存储元数据的方式。当使用常规 Mac (HFS) 文件系统时,这些元数据由文件系统本身存储在文件的属性中。但在 FAT 或 SMB 中没有为此保留空间,因此 OS X 会绕过它并创建 ._ 文件...

此命令将递归删除它们:

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

相关内容