Shell

tar 排除文件 *.zip

  • March 9, 2017

為什麼*.zip模式不起作用tar

tar cfjv backup.tar.bz2 --exclude mydir/files/*.zip mydir

還有其他語法嗎?

您將需要引用排除模式,mydir/files/*.zip否則 shell 將擴展它(萬用字元),可能/可能匹配許多文件,並且命令行的含義將與您的意圖大不相同。

這意味著將您原來tar的命令行更改為

$ tar cfjv backup.tar.bz2 --exclude "mydir/files/*.zip" mydir

我最初認為cfjv開關有問題。這些是古老的命令行開關,tar它們的處理方式與更“現代”的命令行開關(前綴為 )截然不同-。這就是為什麼您沒有呼叫存檔的原因,jv即使這是f切換之後的內容。

Mac OS X 上的手冊tar在“兼容性”部分下提到了這一點:

支持捆綁參數格式以與歷史實現兼容。它由一個初始單詞(沒有前導 - 字元)組成,其中每個字元表示一個選項。參數作為單獨的詞跟隨。參數的順序必須與捆綁命令字中相應字元的順序相匹配。例如,

      tar tbf 32 file.tar

指定三個標誌 t、b 和 f。b 和 f 標誌都需要參數,因此命令行上必須有兩個附加項。32 是 b 標誌的參數,file.tar 是 f 標誌的參數。

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