Linux tar 指令選項

Linux tar 指令選項

我知道如何壓縮一堆文件,減去幾個我不想要的:

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 的檔案指定功能更強大。

相關內容