aa.tar、bb.tar、cc.tar、...などのtarファイルがたくさんあります。
aa/、bb/、cc/...などの独自のディレクトリに抽出したいと思います。
私はこれを試しました:
ls | xargs -n1 -I {} tar -xvf {} -C `basename {} .tar`
これはうまくいきません。 {}は完全なtarファイル名として使用するか.tar
、 。
どのように動作させることができますか?
ベストアンサー1
実行時{}
にコマンドの置換(呼び出し)には使用できません。basename
今後電話もしxargs
ました。これは、ディレクトリを各アーカイブに対してtar
(文字通り)名前付きディレクトリに変更しようとすることを意味します。{}
for
たとえば、ループを使用する必要はありませんxargs
。
for t in *.tar ; do
bn="$(basename "$t" .tar)"
mkdir -p "$bn"
tar -xvf "$t" -C "$bn"
done
また見なさい:なぜいいえ解析ls
(および実行方法)?