tar 中有很多“._”文件

Duc*_*uck 14 linux osx tar

我有一个在 linux 机器上生成的 tar。我需要将该 tar 的一部分上传到另一台 linux 机器。完整的 tar 很大,需要几个小时才能上传。我现在在 Mac OSX 机器上,这是我的问题:

  1. 我将 tar 解压缩到一个文件夹并找到我需要上传到新服务器的内容
  2. 我创建了一个较小的 tar,其中仅包含我要上传的内容。
  3. 我上传并解压到新的 linux 机器
  4. 当我查看服务器时,它充满了._文件。对于上传的每个文件,都有一个._文件,例如text1.txt, ._text1.txt, text2.txt, ._text2.txt...

OSX 将这些文件包含在 tar 中。

我试过这样做

tar --exclude='._*' -cvf newTar  . 
Run Code Online (Sandbox Code Playgroud)

没有区别。

我现在没有新服务器的 ssh 访问权限。

我能做些什么来解决这个问题?如何生成干净的焦油。

pdo*_*pdo 25

._ 文件是 OS Xbsdtar处理 OS X 特定扩展属性和资源分支的方式。(这是一种称为 AppleDouble 的机制,它实际上不仅仅适用于 TAR 档案,还存在于多种存储格式中,其中没有用于保存 MacOS 资源分支和 Finder 信息的本机机制。)

为了防止它们被添加到您的 tar 文件中,您可以将它们COPYFILE_DISABLE=1作为环境变量传递给 tar。

COPYFILE_DISABLE=1 tar cf newTar.tar /your/files

  • 还有一个未公开的选项`--disable-copyfile`。 (7认同)

Gil*_*il' 11

据我了解,tar --exclude='._*' -cvf newTar .应该有效:Finder 创建._*文件但newTar不应该包含它们。

但是您可以通过在直通模式下调用 tar 来完全绕过这些文件。例如,只复制从文件oldTar是下some/path,使用

tar -cf newTar --include='some/path/*' @oldTar
Run Code Online (Sandbox Code Playgroud)