Linux tar 命令选项

Linux tar 命令选项

我知道如何 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 选项将从 '-'(表示 stdin)读取文件,并将它们打包成 tar。我发现这特别有用,因为 rsync 也有一个 --files-from 选项,所以我只需要记住一个文件指定命令。此外,“find”比 tar 或 rsync 的文件指定能力更强大。

相关内容