lsofコマンドを使用すると、ファイルが何らかのプロセスで使用されているかどうかを判断できますが、使用するファイルをアトミックにチェックし、使用されていない場合にのみ移動する必要があります。これらのファイルは、私が制御できない他のさまざまなプログラムで使用されているため、アドバイザリロックを使用できません。目的は、他のプロセスがそのファイルを変更するのを防ぐことです。そのため、プロセスが開いている間にファイルを移動するだけでは問題があります。解決策はありますか?
更新:私の目的に合っていると思う解決策が私に思い浮かびました。最終的な目標は、他のプログラムがファイルの変更を完了したときに、これらのファイルを最終状態で処理することです。ファイルを別のディレクトリに移動すると、lsofを使用して、古いパスを介してファイルがまだ使用されているかどうかを確認できます。もしそうなら、それが使用されなくなるまで後でもう一度チェックして、ファイルを処理します。ファイルを別のディレクトリに移動することにより、ユーザーとプログラムからファイルを非表示にします。ユーザーとプログラムに古いディレクトリのファイルを表示させたくないのは、lsofを使用してファイルを処理する間にファイルを開く機会が与えられるためです。つまり、ファイルを変更された状態で処理することになります。