する方法を教えてください。
特定のディレクトリ内のファイル(作成済み)であればtail -f * などで実現できることは理解しています。
tailコマンドでは無理です。
「*」はshellが展開するので、tailコマンドが受け取るときには、カレントディレクトリのファイル一覧に置き換えられているからです。
echo * とかを実行するとわかります。
なのでプログラムを作るか探すか、スクリプトを組むしかないですね。具体的な目的や用件がわからないとなんともいえませんが。
たとえば、tail直前に、カレントディレクトリのファイル一覧を
ls * > /tmp/currentTail
みたいにどっかに残して、からtail -fをバックグラウンドで実行して、定期的に
find . -type f -cnewer /tmp/currentTail
とかで、新しくファイルができたか確認して、新しくできていたら/tmp/currentTailを再作成して、tailを実行、とかですかね。
ただ、このやり方はlsした後tailを実行する前にファイルが作られると駄目なので、頻繁にファイルが作成されるような場合はうまくいかないですし、
ログローテートみたいなものでファイルが切り変わるような場合も対応できないです。
いずれにせよ目的や用件しだいでしょう。
WindowsですとFileSystemWatcherでファイルの作成を監視できます。
http://www.atmarkit.co.jp/fdotnet/dotnettips/281filewatch/filewa...
Unix環境ですとNFSを監視するような製品があります。
http://cwatcher.jp/product/unix_a.html
Unix環境でファイルシステムレベルでファイル作成を監視してくれるようなものは無さそうです。
コメント(0件)