我正在编写自己的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内容时,它似乎是一些二进制数据,但我不知道它来自何处。
答案 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.txt
和xattr -l Test.txt
,看看OSX在该文件上添加了哪些额外内容。
答案 3 :(得分:2)
这是OSX在目标文件系统不支持时存储文件系统分叉的方式。