tarファイルから抽出されたディレクトリ名の検索

tarファイルから抽出されたディレクトリ名の検索

私は多くのファイルをダウンロードしてコンパイルするプロジェクトを持っています。このファイルについて私ができる仮定は次のとおりです。

  • 最上位ディレクトリは1つだけです。
  • フォルダ名がtar.xz/gzファイル名と必ずしも一致する必要はありません。つまり、Something-1.3.5a.tar.gzをSomething-1.3.5というフォルダに抽出できます。

入力量を減らすために、以下を実行する小さなスクリプトを作成しました。

  • tar.xz/gz ファイルの抽出
  • cdでディレクトリに入ります

私の現在のハッキングは、次のことを行うことです。

test1=$(tar -axvf something-1.3.5a.tar.gz)

cd $(echo $test1 | cut -f1 -d" ")

基本的にこれが行うことは、抽出の出力をキャプチャし、最初の行(トップレベルディレクトリ)をインポートしてからそこにCDを挿入することです。

だから私の質問は、これを行うよりクリーンでより良い方法がありますか?

ベストアンサー1

#!/bin/sh
Dir_name=`tar -tzf something-1.3.5a.tar.gz | head -1 | cut -f1 -d"/"`
echo $Dir_name

tar options details,
-t, --list 
-z, --gzip, --ungzip               filter the archive through gzip
-f, --force-local              archive file is local even if has a colon

ここでは、tarのファイルのリストを取得し、head -1cmdを使用して最初の行を取得し、cmdを切り取り、最初のフィールドを抽出します。

おすすめ記事