時々、新しいファイルが表示されるフォルダAがあります。 1時間に新しいファイルがない場合がありますが、1秒間に複数の新しいファイルがある可能性があります。すべてのファイルには、名前に固有のタイムスタンプとさまざまなファイル拡張子があります。コンテンツがフォルダに保存される内容、方法、タイミングを変更する方法はありません。これは、FTP経由で外部からアクセスできるマイコンピュータのディレクトリです。
他のフォルダでは、BIは新しいファイルが作成されるとすぐにフォルダAに「Newest.jpg」という最新のjpgファイルのコピーをインポートしようとします。 1秒だけ遅れてみてください。 Webカメラの出力を模倣する必要があります。
Ubuntu 14.04 LTSを実行しているRaspberryなどのシステムでこれを実行するのに最適な計算コストが最も少ない方法は何ですか?
ベストアンサー1
パッケージをインストールすると、新しいファイルが作成されたときにイベントを取得するinotify-tools
簡単なスクリプトを作成できます。inotify
inotifywait -m -e create --format %f A |
while read filename
do ln -f A/"$filename" B/Newest.jpg
done
watchディレクトリに新しいファイルが作成されるたびに、イベントA
は指定された形式で印刷されます%f
。つまり、ファイル名のみが印刷されます。シェルループはこの内容を読み取り、リンクを生成します。ファイルの作成とリンク設定の間に遅延があってはなりません。
一致から特定のファイル名を除外する必要がある場合は、正規表現--exclude
パターンを追加してファイルを除外できます。あるいは、シェルループ内で目的のパターンをテストする方が簡単な場合があります。 Bashを使用している場合は、始めに簡単に追加できます。inotifywait
--exclude '.*.wav$'
*.wav
*.jpg
do
[[ "$filename" != *.jpg ]] && continue
これは正規表現ではなくglobパターンをテストします。