我正在尝试改编一个使用 的脚本bsdtar
,该脚本在我的 Linux 发行版上不可用。
bsdtar -x -f <file> --include="SOME/FOLDER/"
--include
intar
命令的替代方案是什么?
答案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 全部被提取。