我知道如何壓縮一堆文件,減去幾個我不想要的:
tar --exclude=./*.jpg -pcjvf all.tar.gz ./
在這裡,我壓縮了所有文件,除了任何 jpg 副檔名。
我想做相反的事。我只需要 tar 某些文件。在谷歌搜尋之後,我沒有太多運氣找到例子。
tar 指令是否存在 --include 選項?
答案1
沒有--include
選項,因為您可以簡單地將要作為參數包含在內的所有文件附加到tar
.如果您想透過通配符包含,請使用find
:
tar -pcjvf specific.tar.gz $(find -name *.jpg)
答案2
我錯過了什麼嗎?為什麼不直接做:
tar -pcjvf pictures.tar.gz ./*.jpg
答案3
像這樣的事情:
tar -pcjvf images.tar.gz ./*.jpg ./*.jpeg ./*.png
答案4
我會透過將「find」輸出管道傳輸到 tar 來做到這一點:
find /your/directory -type f -name '*.jpg' | tar --files-from=- -cvf meow.tar
「find」指令列印 /your/directory 中儲存的所有 jpg遞迴地,而 tar 神奇的 --files-from 選項將從“-”(表示標準輸入)讀取文件,然後對它們進行 tar。我發現這特別有用,因為 rsync 也有一個 --files-from 選項,所以我只需要記住一個檔案指定命令。此外,「查找」比 tar 或 rsync 的檔案指定功能更強大。