在mac os x中添加“隐藏”文件的tar命令,为什么?

时间:2012-01-07 02:05:41

标签: macos terminal osx-lion 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上的终端。

./._Test.txt文件来自何处?在做ls -a

时我没有看到它

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

4 个答案:

答案 0 :(得分:36)

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

export COPYFILE_DISABLE=true

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

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

答案 1 :(得分:20)

从bsdtar 3.0.3 - libarchive 3.0.3开始(可能更早),bsdtar命令--disable-copyfile有一个新的(Mac OS X特定)选项来禁止创建._文件。

答案 2 :(得分:5)

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

尝试ls -l@ Test.txtxattr -l Test.txt,看看OSX在该文件上添加了哪些额外内容。

答案 3 :(得分:2)

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

请参阅:http://en.wikipedia.org/wiki/Fork_(file_system)