※当サイトの記事には、広告・プロモーションが含まれます。

tarで展開(解凍)せずに中身を確認するを入れ子の圧縮ファイルで行いたかったのだが...

nazology.kusuguru.co.jp

小型ドローンといえば、一般人でも気軽にアプローチできる便利な技術として近年広まっています。

多くの人が、動画撮影、農業、警備、被災地調査などのために用いてきたのです。

【衝撃の破壊力】爆弾を積んで特攻する「爆弾ドローン」が登場 - 科学ニュースメディア!ナゾロジー

一方で、このようなドローンが「戦争のための便利な道具」として利用され始めています。

【衝撃の破壊力】爆弾を積んで特攻する「爆弾ドローン」が登場 - 科学ニュースメディア!ナゾロジー

最近、アメリカの軍事企業「Anduril Industries」が発表した新しいドローンは、まさに戦争の在り方が変わることを示唆しています。

【衝撃の破壊力】爆弾を積んで特攻する「爆弾ドローン」が登場 - 科学ニュースメディア!ナゾロジー

彼らが公開した動画では、爆弾ドローンとなった「Bolt-M」が、敵軍の車めがけて急降下し、強力な爆撃を加える様子が映し出されています。

【衝撃の破壊力】爆弾を積んで特攻する「爆弾ドローン」が登場 - 科学ニュースメディア!ナゾロジー

⇧ Oh, my gosh...

戦争だけじゃく、テロとかでも利用されそうで最悪なんだが...

人類は歴史に学ばず、破滅に向かっていくのは人という種の宿命なんだろうか...

tarで展開(解凍)せずに中身を確認するを入れ子の圧縮ファイルで行いたかったのだが...

業務で、入れ子の圧縮ファイルの中身を展開(解凍)せずに確認したいこと、あるあるだよね?

というわけで、ネットの情報を漁ってみたけれど、芳しい情報が見当たらず、ChatGPTに確認してみました。

入れ子の圧縮ファイルを用意する

検証用の圧縮ファイルを作成します。

README.txtの作成

echo "This is a README file." > README.txt    

圧縮ファイルを作成

mkdir archive-abc
echo "Content for archive-abc" > archive-abc/file1.txt
tar -czf archive-abc.tar.gz -C archive-abc .    

圧縮ファイルを作成

mkdir archive-four-color
echo "Content for archive-four-color" > archive-four-color/file2.txt
tar -czf archive-four-color.tar.gz -C archive-four-color .    

全てをまとめた圧縮ファイルを作成

tar -cJf archive.tar.xz archive-abc.tar.gz archive-four-color.tar.gz README.txt 

以下のような構成になる。

圧縮ファイルの構成

archive.tar.xz
  |_archive-abc.tar.gz
  |  |_archive-abc/
  |  |_archive-abc/file1.txt
  |_archive-four-color.tar.gz
  |  |_archive-four-color/
  |  |_archive-four-color/file2.txt
  |_README.txt  


■作業ディレクトリの用意

検証するための作業用のディレクトリを作成します。

作業ディレクトリを作成

mkdir -p sandbox   

作業ディレクトリに先ほど作成した圧縮ファイルをコピーする

cp archive.tar.xz sandbox/archive.tar.xz

作業ディレクトリの中身を確認

ls -la  

 

入れ子の圧縮ファイルを展開(解凍)せずに中身を確認する

検証を行います。

現在のディレクトリの確認

pwd    

ファイル、ディレクトリの確認

ls -la

通常のtar -tfで確認

tar -tf archive.tar.xz     

入れ子の圧縮ファイルを展開(解凍)せずに中身を確認する

echo "archive.tar.xz"
for file in $(tar -Jtf archive.tar.xz); do 
    if [[ "$file" == *.tar.gz ]]; then 
        echo "  $file"; 
        tar -ztf <(tar -xO -Jf archive.tar.xz "$file") | sed "s|^\./||; s|^|    ${file%.tar.gz}/|"; 
    elif [[ "$file" == */ ]]; then 
        echo "  $file"; 
    else 
        echo "  $file";
    fi; 
done    

ファイル、ディレクトリの確認

ls -la

う~む...

イケて無さ過ぎる...

実際は更に入れ子の圧縮の階層が深くなっていることもあるわけなので、上記だと使い物にならないわけなのだが...

何と言うか、ネットの情報も芳しいものが無いのよね...

入れ子の圧縮ファイルは、実業務でも登場しそうな気がするからして、ネットの情報で見当たらないのが謎過ぎるんよね...

毎度モヤモヤ感が半端ない…

今回はこのへんで。