Shell
tar 排除文件 *.zip
為什麼
*.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 標誌的參數。