rsyncテストの実行がいくつかのディレクトリを一覧表示しますが、他のディレクトリは一覧表示されません。

rsyncテストの実行がいくつかのディレクトリを一覧表示しますが、他のディレクトリは一覧表示されません。

出力を理解しようとしていますrsync -n --update -av dir1/ dir2/。ここには、dir2存在しないか最新のファイルだけでなく、すべてのディレクトリをリストする必要があると聞きましたdir1。テストディレクトリでこれを試しました。

test
test/testDir1
test/testDir1/testDir11
test/testDir1/testDir11/testFile3.txt
test/testDir1/testFile2.txt
test/testFile1.txt
test/testDir2

にコピーしてtestCopy変更してtest/testDir1/testFile2.txt実行すると、rsync -n --update -av test/ testCopy/出力は次のようになります。

./
testDir1/
testDir1/testFile2.txt
testDir1/testDir11/
testDir2/

出力がどのように機能するかは、内容に基づいてこれが私が期待するものです。

しかし、、他のより大きな物理ディレクトリのペアに対して同じコマンドを試しましたが、非常に異なる動作を得ました。以下は、同期する必要があるディレクトリペアの2つの例です。

  • ./場合によっては、ディレクトリ620とファイルが多いが出力は。リストされたファイルはありません。

  • 一方、いくつかの(7/72)ディレクトリがリストされています。リストされたファイルはありません。

この出力が私に何を示しているのか理解できませんか?

ベストアンサー1

指摘できる明確な文書はありませんが、これが起こっていると思います。

を使用すると、-v|--verbose転送するファイル(-n|--dry-run指定した場合は転送するファイル)が一覧表示されます。ディレクトリは Unix 系オペレーティング・システムの単純なファイルであり、同じ規則に従ってリストされます。

では、ディレクトリはいつ移行されますか? (明らかにターゲットに存在しない場合を除き)これを指定すると仮定すると-t|--times(暗黙的に-a)タイムスタンプが変更されたときに送信されます。プロパティが変更されると、同様のルールが適用されます。

ディレクトリのタイムスタンプはいつ変更されますか?観察によると、これは(少なくとも)ファイルが単に属性(時間など)を変更するのではなく、ディレクトリ内のファイルが作成されたり名前が変更されたりすることです。

したがって、touchで新しいファイルを作成するtestDir11と、testDir11タイムスタンプが変更され、転送が可能になります。ただし、既存のファイルが存在する場合、touchディレクトリは変更されません。

おすすめ記事