web-dev-qa-db-ja.com

`cp`と `rsync`の違いは何ですか?

彼らは私に似ているようです。それらの使用方法を知りたいです。構造の違いは何ですか?

2
Thái Siu Nhưn

簡潔に(このトピックについて小さな本を書くことができます)、次のように考えると便利でしょう。

  • cpは内容を複製するためのもので、デフォルトではファイルに一意のフルパス名のみが含まれるようにします
  • rsyncは、データを同期するためのもので、ファイルのサイズとタイムスタンプを使用して、ファイルを置き換えるかどうかを決定します。 cpよりも多くのオプションと機能があります

さまざまなオプションを使用して、多くのタスクでそれらのいずれかを使用できます。たとえば、cp -uは、rsyncを使用して新しいファイルのみを置換できます。

しかし、一方が他方よりも有利なタスクがいくつかあります

ローカルの複製ファイルまたはディレクトリを作成する場合は、cpを使用することもできます。たとえば、重要なファイルを編集するため、最初にバックアップを作成します。

cp .bashrc bashrc-bak

これをrsyncにするには、さらに3つのキーストロークが必要になります。ディレクトリを複製する場合

cp -r ~/Desktop/cakes ~/Recipes/cakes

あなたによく役立ちます。なぜrsync -aと入力する必要があるのですか? -v verboseオプションを使用すると、より興味深く有用な出力が得られるためです。

ただし、フラッシュドライブ上のシステム上のディレクトリのバックアップを更新するとします。ディレクトリは既にフラッシュドライブに存在し、ファイルの最新バージョンを保持するために、ファイルをsyncしたいだけです。 rsynccpよりもはるかに高速です。ファイルサイズとタイムスタンプをチェックして、更新する必要があるものを確認し、さらに改良を加えることができるためです。デフォルトの「クイックチェック」の代わりにチェックサムを実行させることもできますが、これには時間がかかります。

rsyncを使用して、ファイルをリモートマシンにコピーまたは同期することも、makeを daemon として実行することもできます。謙虚なcpはそのような派手なことはできません。

オプションと構文(「構造」?)(非常に似ています)を学習するには、manおよびinfoページを読んで練習してください。

4
Zanna

cpは、これまで存在していたシンプルなツールであり、ローカルファイルシステム上のある場所から別の場所に単純にコピーするために使用されます。ブラインドコピーを行い、ファイルの上書きを要求する場合があります。

反対に、rsyncは2つのディレクトリ/ファイルを同期するための複雑なツールであり、必ずしも同じファイルシステム上にあるわけではありません(rsync over sshftp、... )また、帯域幅や時間を節約するための多くの機能があります(ファイルが同じ場合、すべてをコピーする必要はありません)。

0
Jakuje