我正在嘗試創建一個腳本來從包含多種文件的存檔中僅提取 jpeg 圖片。
為此,我嘗試使用:
tar -xf MyTar.tar *.jpg
但它失敗了(找不到*.jpg)並建議我使用“--wildcard”。所以我嘗試了
tar -xf MyTar.tar --wildcard *.jpg
我這樣做了,但隨後出現了相同的錯誤和不同的警告,告訴我選項「--wildcard」不明確。
我已經瀏覽了 tar 的手冊頁,但沒有找到有關該問題的線索。
答案1
最終,我在好好休息後找到了答案。該選項是通配符s, 複數...
所以命令
tar -xf MyTar.tar --wildcards "*.jpg"
正是我需要的。
答案2
像這樣在通配符周圍加上引號,"*.jpg"
這樣 shell 就不會嘗試擴展它,而是直接將其傳遞到 tar。您希望 tar 評估通配符,而不是 shell 和引號來執行此操作。
答案3
對於某些舊版本的 tar,以下內容摘自“人”文件:
檔案名稱替換通配符不能用於從檔案中提取檔案。相反,使用以下形式的命令:
tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | grep 'pattern' `