保田和隆 [著] 2009/02/12 14:00

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

1 2 3 4 →

はじめに

 この連載では、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」)が既に存在する場合、ファイル内容は変更されず更新日付だけが新しくなります。


1 2 3 4
→
INDEX
ファイル・ディレクトリ名の一括置換/一括作成 業務で楽するためのUNIXテクニック集
Page1
はじめに
対象読者
動作確認環境
空のファイルを作成する
ファイル・ディレクトリの一括作成
ファイル名・ディレクトリ名の一括置換
ファイル名置換に関する便利なUNIXテクニック例
まとめ
プロフィール
保田和隆 ヤスダカズタカ

Yasuda Kazutaka

ネットワーク関連の組み込みソフトウェア開発者。

http://uguisu.skr.jp/Windows/


記事へのコメント・トラックバック機能は2011年6月に廃止させていただきました。記事に対する反響はTwitterやFacebook、ソーシャルブックマークサービスのコメントなどでぜひお寄せください。

スポンサーサイト