Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

ファイル・ディレクトリ名の一括置換/一括作成
業務で楽するためのUNIXテクニック集

第2回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/02/12 14:00

 この連載では、UNIX系OSをコマンドライン上から効率よく利用するために知っておくべきテクニックや、便利な小技を紹介していきます。今回は、第0回、第1回で紹介したfind/xargsコマンド、シェルの変数展開、制御構造を利用した「ファイル・ディレクトリ名の一括置換」に関するテクニックを紹介します。

目次

はじめに

 この連載では、UNIX系OSをコマンドライン上から効率よく利用するために知っておくべきテクニックや、便利な小技を紹介していきます。

 今回は、第0回、第1回で紹介したfind/xargsコマンド、シェルの変数展開、制御構造を利用した「ファイル・ディレクトリ名の一括置換」に関するテクニックを紹介します。

 また、「ファイルやディレクトリの一括作成方法」「シンボリックリンクの作成方法」に関するテクニックも紹介します。「ファイル名の置換」テクニックを検証する際の、コマンド確認環境構築にご利用ください。

今までの記事

対象読者

  • UNIX系OSコマンドを一通り利用したことがある方
  • 正規表現を利用したことがある方
  • 何らかのプログラミング経験がある方

動作確認環境

  • Linux(Debian etch/Fedora 9)
  • FreeBSD 6.1
  • Cygwin 1.5.X

 なるべくUNIX系OS一般に当てはまるよう解説するので、特に記述がない場合は、Mac OS X、Red Hat Linux上でも動作します(Solaris では動作しません)。シェルに関しては、bash(Bourne-Again Shell 2および3)を想定しています。

空のファイルを作成する

 サイズの大きくなったログファイルを空にしたい場合など、空(サイズが0)のファイルを作りたいことがあると思います。

 空ファイルを作成するには、次の3つの代表的な指定方法があります。

既存ファイルを空にする方法(1)
$ :> test1.txt 
既存ファイルを空にする方法(2)
$ echo -n > test2.txt  
既存ファイルを空にする方法(3)
$ cp /dev/null test3.txt 

 (1)では、組み込みコマンドの「:」(何もせず終了コード0を返す)とリダイレクトを組み合わせています。

 (2)のように、echoコマンドとリダイレクトを組み合わせる方法でも作成できます。この際「-n」オプションを付けないと、改行コードが含まれた1byteのファイルが作成されてしまいます。

 (3)の「/dev/null」はヌルデバイスと呼ばれ、読み込んだ場合には常に空ファイルとなります。

 また、適当な名前の空のファイルを作成したい場合は、mktempコマンドを使用できます。

$ mktemp hoge.XXXXXX
hoge.jv2984

 ファイル名に「XXXXXX」のように大文字の「X」を6つ連続して指定すると、「X」の箇所に任意の文字列が挿入されたファイル名になります。なお「-d」オプションを付けると、ディレクトリが作成できます。

※注1

空のファイルを作る場合には、よくtouchコマンドが使われます。

$ touch test.txt

しかし、touchコマンドは指定した名前のファイル(上の場合だと「test.txt」)が既に存在する場合、ファイル内容は変更されず更新日付だけが新しくなります。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:業務でラクするためのUNIXテクニック集

おすすめ記事

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5