Macos mac os x中的Tar命令添加;“隐藏的”;档案,为什么?

Macos mac os x中的Tar命令添加;“隐藏的”;档案,为什么?,macos,terminal,osx-lion,tar,Macos,Terminal,Osx Lion,Tar,我正在写我自己的焦油档案。在我的应用程序中,所有这些都可以正常工作(甚至可以读取用其他工具生成的tar),但是我无法让我的tar文件与第三方tar文件阅读器一起工作。因此,我尝试在命令行上构建一个tar文件,用我的代码和二进制代码构建一个tar文件,并对两者进行比较 但似乎有一个问题: 我有一个名为Test.txt的文本文件,我想将其添加到我的tar中,因此我在终端中运行以下命令: tar -c -f x.tar Test.txt 执行此操作时: tar -tf x.tar 我得到以下列表:

我正在写我自己的焦油档案。在我的应用程序中,所有这些都可以正常工作(甚至可以读取用其他工具生成的tar),但是我无法让我的tar文件与第三方tar文件阅读器一起工作。因此,我尝试在命令行上构建一个tar文件,用我的代码和二进制代码构建一个tar文件,并对两者进行比较

但似乎有一个问题:

我有一个名为Test.txt的文本文件,我想将其添加到我的tar中,因此我在终端中运行以下命令:

tar -c -f x.tar Test.txt
执行此操作时:

tar -tf x.tar
我得到以下列表:

./._Test.txt
Test.txt
这是在Mac OS X Lion上的终端中

这个
/\u Test.txt
文件来自哪里?我在做ls-a时没有看到它


在检查tar内容时,它似乎是一些二进制数据,但我不知道它来自哪里。

它是文件的资源分叉/扩展属性的表示


尝试
ls-l@Test.txt
xattr-l Test.txt
查看OSX附加到文件上的额外内容。

这是OSX在目标文件系统不支持文件系统分叉时存储文件系统分叉的方式


请参阅:

您可以将以下内容添加到bashrc文件中-

export COPYFILE_DISABLE=true
或者,您可以在提取时将此选项添加到
tar
命令中

tar -xzpvf x.tar --exclude="._*"

从bsdtar
3.0.3-libarchive 3.0.3
(可能更早)开始,
bsdtar
命令有一个新的(Mac OS X特定的)选项,名为
--禁用copyfile
,以禁止创建

排除参数在这里不起作用,使用export命令确实有效。
--exclude
对我来说很有效(在某种情况下,即使在OS X上也会用
.
-文件来污染一切),在很多情况下过于贪婪。我们希望以copyfile为目标,而不是所有隐藏的文件都带有
bsdtar 2.8.3-libarchive 2.8.3
10.7.5
--disable copyfile
没有文档记录,但仍然可用。