Yamamoto's Laboratory
UNIXツール
コンピューター UNIXツール

UNIX ツール

UNIX(Linux)のツールの使い方のメモ—自分が忘れたくない事項—を順不同で書き足します.私自身が忘れてしまうと困るから,WEBを利用して書いているだけです.

目次


ファイルの圧縮解凍

tar

昔から Unix で使われてきたコマンドで,ファイルを書庫化/圧縮,展開することができます.tar は,tape archives の頭文字です.いかにも古めかしいですね..拡張子は,「*.tar」などです.

使い方の例

  • ファイルを固めるとき.以下の例は,hoge.tar と言うファイル名で固める場合です.ソースは,複数のファイルやディレうトリーの指定ができます.
    $ tar cvf  hoge.tar ソース         圧縮なし
    $ tar zcvf hoge.tar.gz ソース      gzip圧縮
    $ tar jcvf hoge.tar.bz2 ソース     bzip2圧縮
  • ファイルを取り出す (解凍) とき.以下の例は,hoge.* という圧縮ファイル名からファイルを取り出す場合です.
    $ tar xvf  hoge.tar      圧縮なし
    $ tar zxvf hoge.tar.gz   gzip圧縮
    $ tar jxvf hoge.tar.bz2  bzip2圧縮
  • アーカイブファイル名の表示
    $ tar tf ファイル名    ファイル名:hoge.tar, hoge.tar.gz, hoge.tar.bz2

オプション

代表的なオプションは,以下の表の通り.

tar のオプション
オプション 内容
c 新しいアーカイブを作成する
x アーカイブからファイルを抽出(解凍)する
f ファイルを指定する
v 処理したファイルの一覧を詳しく出力する
z gzipで圧縮や解凍するときのオプション
j bzip2で圧縮や解凍するときのオプション
t アーカイブファイルの表示
h ヘルプを表示

日本語文字

nkf

nkf (Network Kanji Filter) は,文字コードを変換するときに便利なプログラムです.

テキストファイルの文字コードや改行コードは,nkf に オプション --guess で調べることができます.

$ nkf  --guess  ファイル

日本語のコード変換には,nkfを使います.

  • WindowsのsjisファイルをLinuxのeucファイルに変換するとき.
    $ nkf  -ed  sjisファイル  >  eucファイル
    ファイルを上書きしたい場合には,オプションの「--overwrite」をつけます.
    $ nkf  -ed  --overwrite  sjisファイル
  • LinuxのeucファイルをWindowsのsjisファイルに変換するとき.
    $ nkf  -sc  eucファイル  >  sjisファイル
  • BOM 無しの UTF-8 のファイルに変換するとき.
    $ nkf  -w  テキストファイル  >  UTF-8 テキストファイル

英語のテキストファイルであっても,改行コードはOSに依存します.Unix系では「LF」,Windosでは「CR+LF」,Macintoshでは「CR」となっています.OS間でデータを移動させる場合,この改行コードを変更しなくてはなりません.

  • OSに適した改行コードに変更.
    $ nkf -Lu 元のファイル名 > 変更後のファイル名Unixの改行コードに(LF)
    $ nkf -Lw 元のファイル名 > 変更後のファイル名windowsの改行コードに(CR+LF)
    $ nkf -Lm 元のファイル名 > 変更後のファイル名Macintoshの改行コードに(CR)

小技

Linux を便利に使うための小技です.

  • あるディレクトリー以下のディレクトリーあるいはファイルを再帰的にのパーミッションの変更.
    $ find ディレクトリー -type f -exec chmod パーミッション \{\} \;
    $ find ディレクトリー -type d -exec chmod パーミッション \{\} \;
    -type の後が,「f」の場合にはファイル,「d」の場合はディレクトリーのパーミッションを変更します.パーミッションの指定は,「644」とか「755」とかです.
  • 指定したデレクトリーの複数のファイル中のテキストから特定の文字列を検索します.
    $ find ディレクトリー -type f -print | xargs grep '検索文字列'
  • 指定したデレクトリーの指定のファイルサイズのファイルを検索します.
    $ find ディレクトリー -size ファイルサイズ
    ファイルサイズを「+100M」とすると 100Mbytes 以上,「-500k」500kbytes 以下のファイルを検索します.+/- で以上/以下を表します.接頭辞には,「k」と「M」,「G」が使えます.

ページ作成情報

参考資料

更新履歴



no counter