彼らは私に似ているようです。それらの使用方法を知りたいです。構造の違いは何ですか?
簡潔に(このトピックについて小さな本を書くことができます)、次のように考えると便利でしょう。
cp
は内容を複製するためのもので、デフォルトではファイルに一意のフルパス名のみが含まれるようにしますrsync
は、データを同期するためのもので、ファイルのサイズとタイムスタンプを使用して、ファイルを置き換えるかどうかを決定します。 cp
よりも多くのオプションと機能がありますさまざまなオプションを使用して、多くのタスクでそれらのいずれかを使用できます。たとえば、cp -u
は、rsync
を使用して新しいファイルのみを置換できます。
しかし、一方が他方よりも有利なタスクがいくつかあります
ローカルの複製ファイルまたはディレクトリを作成する場合は、cp
を使用することもできます。たとえば、重要なファイルを編集するため、最初にバックアップを作成します。
cp .bashrc bashrc-bak
これをrsync
にするには、さらに3つのキーストロークが必要になります。ディレクトリを複製する場合
cp -r ~/Desktop/cakes ~/Recipes/cakes
あなたによく役立ちます。なぜrsync -a
と入力する必要があるのですか? -v
verboseオプションを使用すると、より興味深く有用な出力が得られるためです。
ただし、フラッシュドライブ上のシステム上のディレクトリのバックアップを更新するとします。ディレクトリは既にフラッシュドライブに存在し、ファイルの最新バージョンを保持するために、ファイルをsyncしたいだけです。 rsync
はcp
よりもはるかに高速です。ファイルサイズとタイムスタンプをチェックして、更新する必要があるものを確認し、さらに改良を加えることができるためです。デフォルトの「クイックチェック」の代わりにチェックサムを実行させることもできますが、これには時間がかかります。
rsync
を使用して、ファイルをリモートマシンにコピーまたは同期することも、makeを daemon として実行することもできます。謙虚なcp
はそのような派手なことはできません。
オプションと構文(「構造」?)(非常に似ています)を学習するには、man
およびinfo
ページを読んで練習してください。
cp
は、これまで存在していたシンプルなツールであり、ローカルファイルシステム上のある場所から別の場所に単純にコピーするために使用されます。ブラインドコピーを行い、ファイルの上書きを要求する場合があります。
反対に、rsync
は2つのディレクトリ/ファイルを同期するための複雑なツールであり、必ずしも同じファイルシステム上にあるわけではありません(rsync
over ssh
、ftp
、... )また、帯域幅や時間を節約するための多くの機能があります(ファイルが同じ場合、すべてをコピーする必要はありません)。