Busybox に付属のイーサネット カメラを使用しています。
RS232経由でシングルボードコンピュータが接続されています。SBC は、jpg スナップショットを取得し、それを CF メモリ カードに保存し、順番に名前を付ける (0001、0002 など) ために、カメラに 1 つのコマンドを送信する必要があります。
これは、連続した名前を付けずに、単一のスナップショットを作成するために使用するコードです。
wget http://127.0.0.1/snap.php -O /mnt/0/snapfull`date +%d%m%y%H%M%S`.jpg
ファイルに順番に名前を付ける必要があります。これは、既に存在するファイルの順次名前変更を行うここで見つけたコードですが、複数のファイルの名前変更後にコードがもう一度実行されると、相互の名前変更によりファイルが削除される可能性があることに注意しました (ファイルが削除されたときにコードを実行しました)。 0001.jpg から 0005.jpg までがディレクトリに存在し、ファイル 0004.jpg は削除されました。これは、検索コマンドがファイル 0004 の前にファイル 0005 をリストしたため、両方の名前が相互に変更され、ファイル 0004 が削除されたためです。)
find . -name '*.jpg' | awk 'BEGIN{ a=0 }{ printf "mv %s %04d.jpg\n", $0, a++ }' | dash
私が探しているのは、SBC によって 1 日に複数回要求できる単一のシェル スクリプトです。これにより、カメラは写真を撮り、保存し、最後に使用した番号に基づいて順番に名前を付けます (最新のファイルは 0005.jpg で、次の画像は 0006.jpg という名前になります)。
添付したコードの最初の行にこの命名機能を追加して、SBC から呼び出すことができる sh スクリプトに含めることができれば素晴らしいと思います。