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
因为它复制子目录 subdirectory1
和 subdirectory2
中的文件,而不是子目录本身。
所需的输出将是:
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
如何加入此规则:
rsync -av --delete --progress ./directory/subdirectory1 /remote
rsync -av --delete --progress ./directory/subdirectory2 /remote
只有一行。
这不起作用:
rsync -av --delete --progress ./directory/subdirectory1 ./directory/subdirectory2 /remote
因为它复制子目录 subdirectory1
和 subdirectory2
中的文件,而不是子目录本身。
所需的输出将是:
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