約800個の.tgzアーカイブを含むディレクトリがあり、それぞれに約10個のファイルが含まれています。事実上、各アーカイブを同じ名前のディレクトリに変換したいと思います。これを行う簡単な1行のコマンドはありますか、それともスクリプトを記述すべきですか?
これをスクリプト化する必要があると思います。 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
このように抽出したいフォルダを作成しますmkdir archive
および抽出中に-Cを使用してフォルダー名を渡し、tar -xvf archive.Zip -C archive