如何仅将特定文件列表 rsync 到另一台服务器上的同一位置

Qms*_*ski 4 scp awk rsync

我有一个文件列表:/location/file.txt

文件内容:

/location1/file2.abc
/location2/location3/file1.abc
/location4/location5/fileX.cde
Run Code Online (Sandbox Code Playgroud)

我想像这样将文件复制到另一台服务器:

cat /location/file.txt | xargs -i scp {} user@server:/location
Run Code Online (Sandbox Code Playgroud)

但是在上面的示例中,列表中的所有文件都复制到特定位置,而我想将它们复制到相同位置(txt 文件 /location1/、/location2/location3/ 等中的准确路径)。

我该怎么做?我也可以使用 rsync,但我只想输入一次密码(到远程服务器)。

wur*_*tel 6

rsync -av --files-from=/location/file.txt / user@server:/location/
Run Code Online (Sandbox Code Playgroud)

这会将本地文件复制/location1/file2.abc/location//location1/file2.abc等。

由于rsync只会调用ssh一次,因此您只需输入一次密码。不过,您可能想使用 ssh 密钥进行调查。