将文件列表 Rsync 到单个目录中

将文件列表 Rsync 到单个目录中

我有一个位于远程计算机上各个目录中的文件列表,我想将其同步到本地计算机上的单个目录。

对于单个文件,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由于校验和不匹配而导致失败并出现错误。不要那样做。

相关内容