我有一个位于远程计算机上各个目录中的文件列表,我想将其同步到本地计算机上的单个目录。
对于单个文件,user@remote:dir1/dir2/file1 ~/local
可以满足我的要求; IE~/local/file1
如果我使用它,它会创建给我我不想要的--files-from
目录结构。~local/dir1/dir2/file1
注意:我知道来自不同目录的重复文件名会导致文件被覆盖~/local
答案1
rsync
( )的文档man rsync
提供了这种特定场景作为其建议之一,
--files-from=FILE
使用此选项允许您指定要传输的文件的确切列表(从指定的 FILE 或-
标准输入的“ ”中读取)。它还调整了 rsync 的默认行为,以便更轻松地仅传输指定的文件和目录:o隐含
--relative
( ) 选项,它保留为文件中的每个项目指定的路径信息(如果要关闭该选项,请使用或)。-R
--no-relative
--no-R
[...]
将其应用于您的问题,
rsync -av --files-from=/tmp/filelist --no-R user@remote:dir1/dir2/file1 ~/local
我认为拥有两个或多个同名文件将具有未定义的行为,可能会rsync
由于校验和不匹配而导致失败并出现错误。不要那样做。