Index > linux コマンドメモ
Wed, March 22, 2006

linux コマンドメモ

cp -p オプション

タイムスタンプを保持したままコピー。

使う理由

作業ディレクトリに一旦関連ファイルを集めたあと、 その作業ディレクトリごとlftpでmirror -Rev する場合において、 コピー元ファイルのタイムスタンプを維持しないと、 内容が同じなのに、mirrorコマンドによりリモートへファイル転送が 起こってしまう。 これを避けるために cp -p オプションを使う。

cp -i ,mv -i オプション

コピーや移動するときに上書きしていいかどうか、確認するオプション。

まとめてふぃあるを移動したい場合など、もしかして、 同じ名前のファイルが移動先にあったら困るな、という場合に -i オプションを付けると安心して移動できる。

 $ cp -i ./*.txt /some/where/
 $ mv -i ./*.txt /some/where/

rm -f オプション

警告メッセージを表示しない。

本来は、書き込み許可のないファイルを削除する場合に使う、とUNIXコマンドリファレンスには書かれている。

使う理由

makefileやスクリプトで削除処理をする場合、 削除対象となるファイルが存在しない場合、エラーメッセージが表示されたり、 makeの場合は処理がストップしてしまう。

-f オプションを付けて削除処理を記述しておけば、 対象ファイルが存在しなくても、エラーメッセージが出ないため、 問題を避けられる。

 $ rm -f *.html

lsof (LiSt Open Files)

tomcatが、Too many open files といったエラーメッセージを発して落ちる場合がある。 (tomcatに限った話ではないが) このような場合は、ファイルを同時に開きすぎている可能性があるので、 lsofコマンドを使って、ファイルを開きすぎていないか調べる。

/usr/sbin/lsof -p <プロセスのpid>

これで現在使っている(リソースをホールドしている)ファイルが列挙されるので、 これの数の増減や内容をチェックすればよい。

以下のように行数をカウントして、処理のたびにどんどん行数が増える=使用中のファイルが増える 場合は、プログラム中にファイルをオープンしたきり、クローズしていないバグが潜んでいる可能性大。

/usr/sbin/lsof -p <プロセスのpid> | wc
 Twitter
follow me on Twitter
 Categories