質問: 最近、7TBのストレージスペースを占める膨大な数のファイルをCentOSボックスの別の場所にコピーする必要がありました。 「cp」コマンドを使用しましたが、何らかの理由(ネットワークの問題である可能性があります)で、いくつかのファイルとディレクトリをコピーした後にコマンドが終了しました。ここで、コピー操作を再開すると、コマンドは、すでにコピーされたファイルのコピーを最初からやり直します(これも、非常に多くの時間とCPUを必要とします)。だから私の質問は、「 cp」と言えますか ‘コマンドは、すでにコピーされているファイルとディレクトリを無視します(これにより、時間とCPUを節約できます)。何か提案はありますか?
回答: ‘ cpのいずれかを使用できます ‘コマンドまたは‘ rsync ‘ファイルをコピーします。
ソリューション1:最初にCPコマンドが表示されます:
cp -u --force <src> <dst>
ここ– u オプションは、ソースファイルが宛先ファイルよりも新しい場合、または宛先ファイルが欠落している場合にのみファイルをコピーします。
注 :場合、上記のコマンドで次のようにプロンプトが表示された場合:
cp : overwrite '<filename>'
次に、「 cp ‘コマンドはインタラクティブモードのエイリアスになります! 「cp」のエイリアスを見つけるには、次のコマンドを入力します。
# type cp
cp is aliased to `cp -i'
インタラクティブであるため、 –force を指定した場合でも、ユーザー入力を提供するように求められます。 オプション。上記を回避し、非対話型コピーを実行するには、以下に示すようにcpコマンドの絶対パスを使用します。
/usr/bin/cp -u --force <src> <dst>
解決策2:rsyncコマンドを使用する:
# rsync -av --ignore-existing<src> <dst>
注 : rsync 事前にファイルリストを作成します。ソースに大きな番号がない場合。ファイルの数、次に rsync このような大きなファイルリストを作成するには、何時間も何時間もかかります。プロセスがハングしたと思うかもしれませんが、代わりに -pを追加してください オプションを選択すると、進行状況バーが表示され、rsyncがハングしていると考える必要はありません!