/ramdiskから通常の/ssdに多くのファイル(毎分約10,000個)を継続的に移動しようとしていますが、すべてのファイルがそこにあるわけではありません。
ソースが存在しないために失敗した場合は、ターゲットmv /ramdisk/file55 /ssd/file55
に何かを書き込もうとしますか?
ほとんどのファイルが/ ramdiskに保存される理由は、ターゲットSSDが磨耗しているのではないかと心配されているからです。
答え1
この質問に答える唯一の方法は、ソースコードを調べることです。実装は異なる場合があります。
特に、mv
私はあなたが以下を言及していると仮定します。GNU Coreutils。
mv
コードの微妙な違いをすべて理解したかどうかはわかりませんが、次のことがわかります。
- 関数の
src/mv.c
1つdo_move(const char *source, const char *dest, const struct cp_options *x)
はですmv
。この関数はという別の関数を呼び出しますcopy
。 - で呼び出される関数は、
src/copy.c
基本的に呼び出される他の関数を囲むラッパーです。copy
do_move
copy_internal
- 関数の上部からソースファイルに
copy_internal
アクセスしようとします。stat
失敗すると、何もせずに終了します。
したがって、次のように答えるのは安全だと思います。
存在しないファイルにアクセスしようとすると、さまざまなスキャンに合格するまでmv
ターゲットには影響しません。