Linux

tar 中有很多“._”文件

  • June 11, 2018

我有一個在 linux 機器上生成的 tar。我需要將該 tar 的一部分上傳到另一台 linux 機器。完整的 tar 文件很大,需要數小時才能上傳。我現在在 Mac OSX 機器上,這是我的問題:

  1. 我將 tar 提取到一個文件夾並找到我需要上傳到新伺服器的內容
  2. 我創建了一個較小的 tar,其中包含我想要上傳的內容。
  3. 我將其上傳並提取到新的 linux 機器
  4. 當我查看伺服器時,它充滿了._文件。對於每個上傳的文件,都有一個._文件,例如text1.txt, ._text1.txt, text2.txt, ._text2.txt

OSX 在 tar 中包含這些文件。

我試過這樣做

tar --exclude='._*' -cvf newTar  . 

沒有區別。

我現在沒有對新伺服器的 ssh 訪問權限。

我能做些什麼來解決這個問題?如何生成乾淨的焦油。

據我了解,tar --exclude='._*' -cvf newTar .應該可以工作:Finder 創建._*文件但newTar不應該包含它們。

但是您可以通過在直通模式下呼叫 tar 來完全繞過這些文件。例如,要僅複製 下的文件oldTar,請some/path使用

tar -cf newTar --include='some/path/*' @oldTar

._ 文件是 OS Xbsdtar處理 OS X 特定的擴展屬性和資源分支的方式。(這是一種稱為 AppleDouble 的機制,實際上它不僅僅適用於 TAR 檔案,它存在於幾種儲存格式中,其中沒有保存 MacOS 資源分支和 Finder 資訊的本機機制。)

為了防止它們被添加到您的 tar 文件中,您可以將COPYFILE_DISABLE=1它們作為環境變數傳遞給 tar。

COPYFILE_DISABLE=1 tar cf newTar.tar /your/files

引用自:https://unix.stackexchange.com/questions/282055