tarコマンドで生成された新しいディレクトリの名前を取得します。

tarコマンドで生成された新しいディレクトリの名前を取得します。

tar -xvfコマンドで作成された新しいディレクトリの名前をどのように知ることができますか?

例えば。私がコマンドを実行すると

tar -xvf jdk-7u17-linux-x64.tar.gz

このtarの内容は "jdk1.7.0_17"という新しいディレクトリに抽出され、上記のコマンドの出力またはスクリプトを使用してこの名前を取得したいと思います。

ベストアンサー1

tarファイルにサブディレクトリが1つしかないか1つしかないという保証はありません。

tarアーカイブを抽出する特別なスクリプトがあります。まず、一時ディレクトリを作成し、そのディレクトリ内のファイルを抽出し、そのディレクトリ内のエントリ数を計算し、

  1. ディレクトリ/ファイルが1つしかない場合は、一時ディレクトリから上に移動します。
  2. ファイル/ディレクトリが複数ある場合は、.tarファイル名(拡張子なし)に基づいて一時ディレクトリの名前を変更します。

同様の操作を実行し、他のスクリプトで追加の参照用にこの方法で決定された最新の名前をテーブルに保存できます。

@jofelがコメントで指摘したように。私のスクリプトの機能は以下にあります。ツールユーティリティセットもあります。アーカイブ抽出ユーティリティはこれを非常によく行います。データリンク

何か欠落していない場合は、どの(個々の)ディレクトリが作成されたかを知る方法がないようです。

おすすめ記事