gunzipを実行し、zipファイル名でディレクトリを作成します。

gunzipを実行し、zipファイル名でディレクトリを作成します。

次のgzipファイルがありますhdf5-1.8.18.tar.gz。以下を使用してファイルを解凍する場合:

gunzip < hdf5-1.8.18.tar.gz | tar xf -

生成されたディレクトリに抽出されます。hdf5-1.8.18。 "-"のためにディレクトリの使用はあまり便利ではなかったので、次のコマンドを使用してディレクトリ名を変更しました。

mv hdf5-1.8.18 hdf5

ただし、このコマンドを使用すると、「1.8.18」バージョン情報が失われるため、次の醜い回避策を使用できます。

mkdir hdf5
mv hdf5-1.8.18 hdf5/1.8.18

私はこの解決策が見苦しいと思うので、これを行うより直接的な方法がないかどうか疑問に思います。ありがとうございます!

答え1

あなたが見たいと思うかもしれない-Cオプションtar

tar zxf hdf5-1.8.18.tar.gz -C hdf

解凍し、解凍し、ディレクトリhdf/の下にディレクトリを配置します。

答え2

まず、質問を少し変えて話すと簡単になります。一種のスクリプトで簡単に解決できるようです。以下はBASHスクリプトで機能します。ファイル名を最初の引数として使用します。たとえば、「./change_name_script.sh hdf5-1.8.18.tar.gz」と入力すると、目的の方法で動作します。

#!/bin/bash
filename=$1

gunzip < $filename | tar xf -
move_filename=$(echo $filename | sed -r 's/.tar.gz$//')
first_part=$(echo "$move_filename" | sed -r 's/-.*$//')
second_part=$(echo "$move_filename" | sed -r 's/^.*-//')

mkdir $first_part
mv $move_filename $first_part/$second_part

関連情報