tar.gzを展開せずに特定のファイルだけを見る方法

October 17,2018 12:03 AM
Category:[Linux]
Tag:[Linux]
Permalink

tar.gzを展開せずに特定のファイルだけを見る方法を紹介します。

1.はじめに

tar.gzファイルから特定のファイルだけを参照したいことがあると思いますが、アーカイブのサイズが大きいと、不要なファイルまで展開することになってしまいます。

また、実ファイルとして展開してしまうと、ちょっと参照したいだけのファイルも後で削除しなければならないため、無駄な作業が発生します。

できればアーカイブの状態で参照したいのですが方法が分かりません。

ということで、tar.gzを展開せずに特定のファイルだけを見る方法を紹介します。

2.tar.gzを展開せずに特定のファイルだけを見る

tar.gzを展開せずに特定のファイルだけを見るには次のようにします。

gzip -d -c hoge.tar.gz | tar xOf - ファイル名 | less

tarコマンドの"xOf"オプションの意味は次の通りです。

  • x:アーカイブから展開する
  • O:標準出力に展開する
  • f:アーカイブファイルを指定

この中の"O"オプションがキモになります。

ファイル名はアーカイブのフルパス(先頭はスラッシュなし)で記述します。

パスが分からない場合は、

tar -ztvf hoge.tar.gz

で事前に確認しましょう。

gzipと組み合わせている理由は「tar.gzから特定のディレクトリ・ファイルだけを取得する方法」を参照してください。

Comments [0] | Trackbacks [0]

tar.gzから特定のディレクトリ・ファイルだけを取得する方法

October 16,2018 12:03 AM
Category:[Linux]
Tag:[Linux]
Permalink

tar.gzから特定のディレクトリ・ファイルだけを取得する方法を紹介します。

1.問題点

仕事で、tar.gzファイルから特定のディレクトリ・ファイルのみを抽出する必要が生じたのですが、抽出する方法がわかりません。

ということで、tar.gzから特定のディレクトリ・ファイルだけを取得する方法を紹介します。

2.tar.gzから特定のディレクトリ・ファイルだけを取得する

tar.gzから特定のディレクトリ・ファイルだけを取得する方法には、下記のようにします。

まず展開が正常に行われるか、tarコマンドの"t"オプションで事前確認します。

% gunzip -c hoge.tar.gz | tar tvf -

gzipコマンドでも大丈夫です。

% gzip -d -c hoge.tar.gz | tar tvf -

それでは実際にディレクトリ・ファイルを抽出してみます。

fooディレクトリだけを抽出するには、次のようにします。

% gunzip -c hoge.tar.gz | tar xvf - *foo
% gzip -d -c hoge.tar.gz | tar xvf - *foo

gunzipコマンドは圧縮されたファイルを展開するコマンドで、"-c"は標準出力へ出力するオプションです。

そしてgunzipで展開したhoge.tarを、パイプでtarコマンドに渡します。

tarコマンドの"-"は標準入力を意味します。これはtarコマンドのオプションではなくシェルの機能です。

最後の"*foo"の"*"はワイルドカードで、fooより前方が任意の文字列を含むすべてのfooディレクトリを抽出します。

foo/bar/test.txtだけを抽出するには、次のようにします。

% gunzip -c hoge.tar.gz | tar xvf - foo/bar/test.txt
% gzip -d -c hoge.tar.gz | tar xvf - foo/bar/test.txt
Comments [0] | Trackbacks [0]

リトルエンディアン・ビッグエンディアンを判定する方法

October 5,2018 12:03 AM
Category:[Linux]
Tag:[Linux]
Permalink

リトルエンディアン・ビッグエンディアンを判定する方法を紹介します。

1.はじめに

エンディアンとは、複数のバイトを並べる順序(バイトオーダ)を指し、コンピュータの世界では、

  • リトルエンディアン
  • ビッグエンディアン

がよく使われます。

たとえば、"1234ABCD"という4バイトのデータを、バイト(8ビット)毎に上位から「12 34 AB CD」のように並ぶのがビッグエンディアン、下位から「CD AB 34 12」のように並ぶのがリトルエンディアンです。

たとえばIntelのx86はリトルエンディアンです。

ということで、リトルエンディアン・ビッグエンディアンを簡単に判定する方法を紹介します。

2.リトルエンディアン・ビッグエンディアンを判定する

リトルエンディアン・ビッグエンディアンを判定するには、TeraTermなどのクライアントターミナルから下記を実行します。

% echo -n "1234ABCD" | od -t x

次のように表示されればリトルエンディアンです。

0000000 34333231 44434241
0000010

次のように表示されればビッグエンディアンです。

0000000 31323334 41424344
0000010


odは与えられた内容を標準出力に書き出すコマンドです。

odコマンドの"-t x"は、16進数で表示するためのオプションです。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages