私たちは現在、クラシックplanAを進めています。
どちらが良いか知りたいです。
fileA
どちらもfileB
存在し、サイズは〜50〜100Mです。
Linux/mac で同じ NFS マウントを想定
これが両方のファイルに存在するオーバーレイであると仮定します。
# planA - we do this way
mv /pathA/fileA /pathB/fileB
# planB
rm /pathB/fileB; mv /pathA/fileB /pathB/fileB
# planB1 - I think is the same as planB, but not sure
unlink /pathB/fileB; ln /pathA/fileA /pathB/fileB
答え1
ファイルIOの場合、高価な作業はデータを移動することです。
ファイルシステム内にある場合(ln
動作するには必ず必要です)、区別は意味がありません。
それぞれの場合に行われることは、ディレクトリエントリが他のインデックスノードを指すように変更されることです。せいぜいこれは無視できる違いなので、「コマンドがどれだけ早く始まるか」を実際に比較することです。
しかし、一つの注意点があります -最後コマンドは/pathA/fileA
そのまま残ります。これはハードリンクなので、両方のディレクトリエントリは同じデータを指します。
これは将来、人々を混乱させる可能性があります。書くfileA、次の場合は1つのことを行います。編集するそれは別の仕事をします。
したがって、単に使用するだけですmv
。全体的に、これは大きな違いを生み出さず、実際に達成したいのが最も明確です。