質問: 2つのディレクトリの内容を比較し、その結果を標準出力に出力するプログラム(diffのラッパーです)を作成していますが、以下のように出力を比較対照のディレクトリ内のファイルにリダイレクトした場合、このファイルまで比較してしまいます。 $ mydiff . directory > diffresult これを防ぐため、ファイルを比較する際に、ファイルが他プロセスによってオープンされているかどうか調べ、その旨をstderrに出力するようにしたいのですが、その方法がわからず困っていますのでよろしくお願いします。
回答: > ですが、このコマンドはrootのみにしか実行権限がない そうなの? > 本マシンは複数の開発者で共有しているものなので、あまり気楽にrootになるわけにはいかない 思い付く案を二つほど。 ・管理者にお願いして、fuser に実行権限をつけてもらう ・su コマンドを使って、fuser を実行する 結局 su コマンドを使う、ということは root 権限を得ることになるのだから、 「気楽に root になるわけにいかない」ということを解決しているわけには ならんですが。 ちなみに、こんな感じ。 % su root -c "/usr/sbin/fuser 対象のファイル名"