1

我正在从 tarball 中提取一个文件夹,我看到这些零字节文件出现在结果中(它们不在源代码中。)设置(全部在 OS X 上):

在第一台机器上,我有一个目录 /My/Stuff/Goes/Here/ 包含数百个文件。我这样建造

tar -cZf mystuff.tgz /My/Stuff/Goes/Here/

在机器二上,我将 tgz 文件 scp 到我的本地目录,然后解压缩它。

tar -xZf mystuff.tgz

它创建 ~scott/My/Stuff/Goes/,但在 Goes 下,我看到两个文件:

Here/ - a directory,  
Here.bGd - a zero byte file.

“Here.bGd”零字节文件有一个随机的 3 字符后缀,混合大小写字符。它与 tar-creation 命令中提到的最低级目录同名。它只出现在名为的最低级别目录中。任何人都知道这些来自哪里,以及我如何调整我的 tar 创建来摆脱它们?

更新: 我使用 tar tZvf 检查了文件的目录: toc 没有列出零字节文件,所以我倾向于解压缩机器有问题的建议。OS X 在解压机器上是 10.5.5 版(不确定如何检查文件系统类型)。Tar 是 GNU tar 1.15.1,它是机器自带的。

4

5 回答 5

2

您可以通过执行从 tarball 获取目录

tar tZvf mystuff.tgz

如果这些零字节文件列在目录中,则问题出在制作 tarball 的计算机上。如果它们未列出,则问题出在解压缩 tarball 的计算机上。

于 2008-10-31T18:15:13.650 回答
0

在我的 MacOS X (10.4.11) 机器上,我有时会在目录中获取文件 .DS_Store(但这些不是空文件),并且我在 Mac 上使用过的记忆棒上看到了其他隐藏文件名。这些在某种程度上与 Mac 文件系统有关。我猜你所看到的与这些文件集中的一个或另一个有关。原始 Mac(MacOS 9 和更早版本)具有文件的数据分支和资源分支。

稍微玩一下,发现我从来没有使用过Finder的目录没有.DS_Store文件;如果我使用 Finder 导航到该目录,则会出现 .DS_Store 文件。它可能包含有关文件应如何出现在 Finder 显示中的信息(因此,如果您四处移动文件,它们将留在您放置它们的位置)。

这并不能直接回答您的问题;我希望它能给一些指示。

于 2008-11-01T06:57:19.430 回答
0

我无法在我的 10.5.5 系统上复制它。

因此,对于每个系统:

  1. 您使用的是什么版本的 OSX?
  2. 正在使用什么文件系统?
于 2008-10-31T18:26:52.877 回答
0

在使用 tar 之前,我没有看到过这个特殊问题。但是,还有另一个问题是 tar 将元数据文件与常规文件捆绑在一起(它们具有相同的名称但以“._”为前缀)。解决这个问题的方法是设置环境变量COPYFILE_DISABLE=y。如果您拥有的那些奇怪的文件是更多的元数据文件,也许这也可以解决您的问题?

如果做不到这一点,您可以尝试安装不同版本的 tar。

于 2008-10-31T18:41:16.750 回答
-1

我不知道(这对 Google 来说是个难题!),但这里有一个故障排除步骤:尝试tar不使用Z. 这将确定是否compresstar正在导致问题。

于 2008-10-31T18:13:02.267 回答