rsync:如何在一次调用中复制多个子目录

rsync: how to copy several subdirectories in just one calling

如何加入此规则:

rsync -av --delete --progress ./directory/subdirectory1 /remote
rsync -av --delete --progress ./directory/subdirectory2 /remote

只有一行。

这不起作用:

rsync -av --delete --progress ./directory/subdirectory1 ./directory/subdirectory2 /remote

因为它复制子目录 subdirectory1subdirectory2 中的文件,而不是子目录本身。

所需的输出将是:

ls /remote/
subdirectory1
subdirectory2

正在整体复制子目录。

您可以包含 --relative (-R) 标志以指定应在目标中记住源路径。源路径中可选的 /./ 部分标记了应该记住路径的起点。

rsync -avR --delete --progress directory/./subdirectory1 directory/./subdirectory2 /remote

工作示例

# Set up the scenario
mkdir /tmp/62569606
cd /tmp/62569606

mkdir -p src/sub1 src/sub2 dst
touch src/sub1/file1 src/sub2/file{1,2}

ls -R src

# Run the rsync command
rsync -av src/./sub1 src/./sub2 dst/

这是输出

sending incremental file list
sub1/
sub1/file1
sub2/
sub2/file1
sub2/file2

sent 272 bytes  received 81 bytes  706.00 bytes/sec
total size is 0  speedup is 0.00

和证据 (ls -R dst)

dst:
sub1  sub2

dst/sub1:
file1

dst/sub2:
file1  file2