1つのコマンドを使用して複数のtarファイルを個別に解凍するには?

1つのコマンドを使用して複数のtarファイルを個別に解凍するには?

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(および実行方法)?

おすすめ記事