次のコマンドを実行して、rsyncを使用して次のファイルのみをコピーしようとします。
- 新しい
- さまざまなサイズに出てください
rsync -niav --size-only /home/me/source/Electronica /media/externalDrive/dest/Electronica
ただし、このテストを実行すると、次の出力が生成されます。
>f+++++++++ Electronica/music/AlbumArt_{F0CB439F-A1FC-47DB-A698-C561191F3FDE}_Large.jpg
>f+++++++++ Electronica/music/AlbumArt_{F0CB439F-A1FC-47DB-A698-C561191F3FDE}_Small.jpg
>f+++++++++ Electronica/music/Folder.jpg
私はこれをファイルがコピーされたという意味に解釈します。しかし、サイズは同じです! (ただし、時間とフラグは異なります。)rsyncは外付けハードドライブ(他の形式)を意味することもあります。
また、次のコマンドを試しました。
rsync -niav --size-only --ignore-times /home/me/source /media/else
rsync -niav --size-only --ignore-existing /home/me/source /media/else
しかし、ファイルはまだ同じように見えるので、コピーされるという意味です。また何を試すことができますか?
ホームページの説明にどのような問題がありますか?
--size-only skip files that match in size
答え1
あなたはrsync
古典的な「末尾のスラッシュトラップ」に陥った。
ソースパスがスラッシュで終わらない場合、rsync
ソースファイルがコピーされます目次。コピーする予定の場合コンテンツソースディレクトリの場合は、スラッシュで終わる必要があります。
次の場所にあるファイルをコピーしているとし、例を見てみましょう/home/me/source/Electronica/music/Folder.jpg
。
rsync -a /home/me/source/Electronica /media/externalDrive/dest/Electronica
コピーするElectronica
目次/media/externalDrive/dest/Electronica/Electronica/music/
ソースからターゲットまで作成され、そこに保存されますFolder.jpg
。
rsync -a /home/me/source/Electronica/ /media/externalDrive/dest/Electronica
コピーするコンテンツディレクトリのディレクトリなので、その下のディレクトリをElectronica
コピーして(存在しない場合)。music
/media/externalDrive/dest/Electronica/
Folder.jpg
/media/externalDrive/dest/Electronica/music/Folder.jpg
状況をより混乱させるために、いいえにもかかわらず目的地パスはスラッシュで終わります。
すべてのパスをスラッシュで終わらせる習慣をつけると、rsync
不快な驚きを避けることができます。