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

Jor*_*ans 26 macos terminal tar osx-lion

我正在编写自己的tar归档程序.一切都在我的应用程序内工作正常(甚至读取用其他工具生成的焦油)但是我无法让我的tar文件与第三方tar​​文件阅读器一起使用.所以我尝试在命令行上构建一个tar文件,用我的代码构建一个tar文件,并比较两者.

但似乎有一个问题:

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

tar -c -f x.tar Test.txt
Run Code Online (Sandbox Code Playgroud)

这样做时:

tar -tf x.tar
Run Code Online (Sandbox Code Playgroud)

我得到以下列表:

./._Test.txt
Test.txt
Run Code Online (Sandbox Code Playgroud)

这是在Mac OS X Lion上的终端.

./._Test.txt文件来自哪里?在做ls -a时我没有看到它

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

jay*_*ngh 37

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

export COPYFILE_DISABLE=true
Run Code Online (Sandbox Code Playgroud)

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

tar -xzpvf x.tar --exclude="._*"
Run Code Online (Sandbox Code Playgroud)

  • exclude参数在此处不起作用,使用export命令. (4认同)

小智 21

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

  • 对于`bsdtar 2.8.3 - libarchive 2.8.3`的`10.7.5`,`--disable-copyfile`没有记录,但仍可用. (5认同)

bla*_*lah 5

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

尝试ls -l@ Test.txtxattr -l Test.txt看看有什么额外的东西OSX上涨到文件.