-r
またはを使用すると、ディレクトリに再帰が--recursive
発生します。またはと同じことを意味します。rsync
-a
--archive
-rlptgoD
-a
-r
ディレクトリがあり、source/
次dest/
を実行する場合:
rsync source dest
その後、何もrsync
スキップしてコピーsource/
しないでください。私が実行した場合:
rsync -a source dest
次に、すべての内容を-a
ヒントしてコピーします。-r
rsync
source/
dest/
list.txt
ただし、その行を含むファイルがあり、source
私のディレクトリへのフルパスがある場合は、source/
次のよう/home/user/source/
に実行します。
rsync -a --files-from=list.txt /home/user/ dest
その後、コンテンツのみをrsync
コピーしsource/
、dest/
コンテンツはコピーしません。オプションなしでコマンドを実行しても同じことが起こります-a
。
ただし、同じコマンドを実行すると、次のようになります-r
。
rsync -r --files-from=list.txt /home/user/ dest
次に、rsync
すべてのコンテンツを。source/
dest/
私の質問は次のとおりです
- このオプションをいつ使用する必要があるかについて
-a
ヒントを与えませんか?これが予想される動作ですか?-r
--files-from=FILE
- このコマンドはディレクトリであり、使用または使用されていないため、何もスキップしてコピーしないこと
rsync source dest
をsource/
考えると、コマンドがまだにコピーされるのはなぜですか?source/
-a
-r
rsync --files-from=list.txt /home/user/ dest
source/
dest/
- このオプションを使用するときに
-a
暗示されている他のオプションはまだ有効ですか?--files-from=FILE
残りの-r
唯一のオプションですか?
編集する:man
ページをもう少し注意深く読んでみてください。オプションの説明 以下に、次のように--files-from=FILE
示します。
--archive(-a) オプションの動作は --recursive(-r) を意味しないため、必要に応じて明示的に指定します。
(私の最初の質問に答えます。)
--dirs(-d) オプションが暗示されています。このオプションは、ターゲットリストを大幅にスキップするのではなく、ターゲットリストに指定されたディレクトリを作成します(このオプションをオフにするには、--no-dirsまたは--no-dを使用します)。
(2番目の質問に答えます。)
答え1
-a
、--archive
これはと同じです
-rlptgoD
。これは、再帰的でほぼすべてを保存したいことを表現する簡単な方法です(-H
1つの重要な省略を使用)。 上記の同等性に対する唯一の例外は--files-from
、それが指定されたときです。この場合、それは暗黙的ではあり-r
ません。
再帰を使用すると--files-from
無効になります(このオプションは欠落している唯一のオプションです)。ユーザーは、転送したい特定のファイルが何であるかを正確に知っており、で使用されているファイルのリストにそのファイルを指定したとします--files-from
。
ファイルリストにディレクトリが指定されている場合、そのディレクトリの所有権、タイムスタンプなどは同期されますが、内容は同期されません。
-r
ただし、次のようにフラグを明示的に追加できます。
rsync -av --files-from=file.list -r src/ dst/
これにより、目的の効果が表示されます。