bsdtar 的 tar 替代方案 --include

bsdtar 的 tar 替代方案 --include

我正在尝试改编一个使用 的脚本bsdtar,该脚本在我的 Linux 发行版上不可用。

bsdtar -x -f <file> --include="SOME/FOLDER/"

--includeintar命令的替代方案是什么?

答案1

根据旧的 Solaris 文档:您可以使用类似以下内容的内容:

tar -xf <file> $(tar -tf <file> |grep "SOME/FOLDER/")

当然,GNUtar可能有选项来定义要提取的文件的过滤器,但从未使用过此类选项。

答案2

只需在命令行中命名文件夹即可:tar xf tar.tar x/b

测试

$rm -fr x; mkdir x x/a x/b x/b/d; touch x/nonofile x/b/f1 x/b/f2 x/b/d/f3;\
 tar cf tar.tar x;\
 rm -fr x; tar xf tar.tar x/b;\
 find x;
x
x/b
x/b/f2
x/b/d
x/b/d/f3
x/b/f1

“nonofile”被正确跳过,但 f1 f2 f3 全部被提取。

相关内容