大容量ファイル(15GB)をLinuxのディレクトリにコピー/移動しようとしていて、そのイベントに依存したいと思います。という名前のファイルがあり、abc.txt
次のコマンドを実行するとします。
mv /usr/tmp/abc.txt /usr/data/
移動プロセスが開始されると、データディレクトリに実際のファイル名を持つファイルが表示されます。つまり、abc.txt
データはまだ転送中です。データディレクトリがそのディレクトリのファイルを一覧表示すると、私の依存プロセスはファイルがabc.txt
利用可能であると考え、従属プロセスを開始しますが、ファイルが完全に移動されず、従属プロセスが早期に実行されます。
一時名でファイルを移動する方法はありますか?つまり、データ転送中に一時的な名前(一部のスワップファイル名)を使用し、転送が完了したら名前を物理ファイルに変更できますか?
答え1
2つの異なるファイルシステム間で移動する必要があるため、ファイルは実際にコピーされます。その後、まずコピーを試み、完了したらターゲット内を移動します。これを行う必要があります:
mv /usr/tmp/abc.txt /usr/data/.abc.txt && mv /usr/data/.abc.txt /usr/data/abc.txt
表示プロセスが隠しファイルを認識しないとします。それ以外の場合は、ターゲットの場所に一時ディレクトリまたは類似のディレクトリを作成できます。