GNU/Linux >> Linux の 問題 >  >> Linux

[Linux]:すでにコピーされているファイルを上書きせずにファイル/ディレクトリをコピーする方法!

質問: 最近、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がハングしていると考える必要はありません!

Linuxでコマンドをコピーおよび移動するためのプログレスバーを追加するために、この記事を参照することもできます。


Linux
  1. ファイルをコピーし、所有権、権限を同時に変更する方法

  2. Linuxのコマンドラインから、フォルダ内にまだ存在しない別のサーバー上のリモートフォルダにのみファイルをコピーする方法は?

  3. Linux の find コマンドを使用してファイルを検索する方法

  1. Linuxでファイルとディレクトリをコピーする

  2. find コマンドを使用せずに n 日より古いファイルを削除する方法

  3. キャッシュされているファイルを一覧表示することはできますか?

  1. LinuxでRsyncコマンドを使用するにはどうすればよいですか?

  2. gnu cp コマンドを使用して複数のディレクトリにファイルをコピーする方法

  3. 最大のディレクトリまたは最大のファイルを見つける方法は?