IT

基本的なファイル管理、パイプとリダイレクト【LPIC level1】

目次

  • 基本的なファイル管理
  • ファイルの圧縮、解凍(gzipコマンド、bzip2コマンド、xzコマンド)
  • アーカイブの作成、展開(tarコマンド、cpioコマンド、ddコマンド、)
  • パイプとリダイレクト
  • 標準入出力
  • パイプ(teeコマンド)
  • リダイレクト

基本的なファイル管理

ファイルの圧縮、解凍

大きなサイズのファイルをバックアップしたり、ネットワーク経由で送信したりする場合は、事前に圧縮しておくと効率的です。

gzipコマンド

Linuxでは、gzipコマンドを使った圧縮がよく利用されています。

gzipで圧縮されたファイルの拡張子は.gzとなります。

オプション説明
-d圧縮ファイルを展開します。
-c標準出力へ出力します。
-rディレクトリ内のファイルをすべて圧縮します。

bzip2コマンド

gzip以外にbzip2コマンドを使った圧縮も使えます。

gzipよりも圧縮効率は高いのですが、処理に時間がかかります。

オプション説明
-d圧縮ファイルを展開します。
-c圧縮ファイルを標準出力へ出力します。

圧縮されたファイルを元に戻す(解凍する)には、

gzipコマンドで圧縮された.gzファイルの場合はgunzipコマンドを使います。

bzip2コマンドで圧縮された.bz2ファイルの場合は、bunzip2コマンドを使います。

xzコマンド

bzip2よりもさらに圧縮効率の高いのがxzコマンドを使った圧縮です。

オプション説明
-d圧縮ファイルを展開します。
-k圧縮・解党後に元ファイルを削除しません。
-l圧縮ファイル内のファイルを一覧表示します。

アーカイブの作成、展開

複数のファイルをまとめたファイルをアーカイブと言います。

tarコマンド

tarコマンドは複数のファイルをまとめて1つのファイルにする、またはアーカイブを展開する際に使用するコマンドです。

オプション説明
-c新しいアーカイブを作成します。
-xアーカイブからファイルを展開します。
-tアーカイブの内容を一覧表示します。
-fアーカイブファイル名を指定します。
-v処理の詳細情報の表示します。
-zgzipを通して圧縮/展開します。
-jbzip2を通して圧縮/展開します。
-Jxzを通して圧縮/展開します。

cpioコマンド

ファイルをアーカイブファイルにコピーしたり、アーカイブからファイルをコピーします。

オプション説明
-o新しいアーカイブを作成します。
-iアーカイブからファイルを展開します。

ddコマンド

入力側に指定したファイルからの入力を、ファイルもしくは標準出力に送ります。

オプション説明
if=入力ファイル入力側ファイルを指定します。
of=出力ファイル出力側ファイルを指定します。
bs=バイト数入出力のブロックサイズを指定します。
デフォルトは512バイト
count=回数入力ファイルから出力ファイルへブロックをコピーする回数を指定します。

パイプとリダイレクト

標準入出力

Linuxでは、通常のファイルと同時に、ディスプレイへの出力やキーボードからの入力を扱うことが出来ます。つまり、キーボードからの入力もファイルの読み込みも同等に扱い、ディスプレイへの出力もファイルへの書き出しも同等に扱います。

標準入力は、プログラムへの入力ストリームであり、デフォルトはキーボードです。

標準出力は、プログラムからの出力ストリームであり、デフォルトは画面(端末)です。

標準エラー出力は、プログラムの正常動作とは関係のないエラーメッセージなどの出力ストリームであり、デフォルトは画面(端末)です。

番号入出力名デフォルト
0標準入力キーボード
1標準出力画面(端末)
2標準エラー出力画面(端末)

パイプ「|」

コマンドやプログラムの出力結果を、別のコマンドやプログラムの入力に渡せると、単純な動作のコマンドを組み合わせて複雑な処理をすることが出来ます。このとき使われるのがパイプで、記号「|」で表します。

teeコマンド

teeコマンドは、標準入力から読み込み、それをファイルと標準出力へとT字型に分岐させます。

つまり、実行結果をファイルに書き込みつつ、次のコマンドへと実行結果を渡すことが出来ます。

オプション説明
-aファイルに上書きするのではなく追記します。

リダイレクト

コマンドの実行結果は、通常、画面上(端末上)に表示されます。

また、コマンドへの入力には、一般的にキーボードが使われます。

書式説明
コマンド > ファイルコマンドの標準出力をファイルに書き込みます。
コマンド < ファイルファイルの内容をコマンドの標準入力へ送ります。
コマンド >> ファイルコマンドの標準出力をファイルに追記します。
コマンド 2> ファイルファイルに標準エラー出力を書き込みます。
コマンド 2>> ファイルファイルに標準エラー出力を追記します。
コマンド > ファイル 2>&1ファイルに標準出力と標準エラー出力を書き込みます。
コマンド >> ファイル 2>&1ファイルに標準出力と標準エラー出力を書き込みます。
コマンド << 終了文字終了文字が表れるまで標準入力へ送ります。
コマンド1 | コマンド2コマンド1の標準出力をコマンド2の標準乳直に渡します。
コマンド1 2>&1 | コマンド2コマンド1の標準出力と標準エラー出力をコマンド2の標準入力に渡します。
コマンド1 | tee ファイル | コマンド2コマンド1の標準出力をコマンド2の標準入力に渡すとともにファイルに書き込みます。
コマンド &> ファイル標準出力と標準エラー出力を同じファイルに書き込みます。

最後まで読んで頂き、ありがとうございました。

他の分野へ移動できる全体ページへは下記リンクから移動できます。