web-dev-qa-db-ja.com

archive.tar.gzに含まれるファイルをarchiveという名前の新しいディレクトリに抽出します

約800個の.tgzアーカイブを含むディレクトリがあり、それぞれに約10個のファイルが含まれています。事実上、各アーカイブを同じ名前のディレクトリに変換したいと思います。これを行う簡単な1行のコマンドはありますか、それともスクリプトを記述すべきですか?

28
si_2012

これをスクリプト化する必要があると思います。 tar -Cオプションを使用して、抽出が配置されるディレクトリを指定できます。

以下のスクリプトは、ディレクトリが存在せず、作成する必要があることを前提としています。ディレクトリが存在する場合、スクリプトは引き続き機能します-mkdirは単に失敗します。

tar -xvzf archive.tar.gx -C archive_dir

例えば.

for a in *.tar.gz
do
    a_dir=`expr $a : '\(.*\).tar.gz'`
    mkdir $a_dir 2>/dev/null
    tar -xvzf $a -C $a_dir
done
26
suspectus

このように抽出したいフォルダを作成しますmkdir archiveおよび抽出中に-Cを使用してフォルダー名を渡し、tar -xvf archive.Zip -C archive

1
Shirish Singh