bsdtar
私のLinuxディストリビューションで利用できないスクリプトを調整しようとしています。
bsdtar -x -f <file> --include="SOME/FOLDER/"
--include
inコマンドtar
の代替案は何ですか?
答え1
以前の Solaris ドキュメントによると、次のように使用できます。
tar -xf <file> $(tar -tf <file> |grep "SOME/FOLDER/")
もちろん、GNUにはtar
抽出するファイルのフィルタを定義するオプションがありますが、そのようなオプションは使用されていません。
答え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はすべて抽出されます。