我在远程服务器上有一系列目录(D1、D2、D3...),每个目录包含多个同名文件(f1、f2、f3)。
我在远程服务器上有:
D1: f1, f2, f3
D2: f1, f2, f3
D3: f1, f2, f3
。
。
。
我想要在本地计算机上使用:
D1: f1
D2: f1
D3: f1
。
。
。
我需要获取所有仅包含 f1 的目录(D1/f1、D2/f1、D3/f1,...)。我知道 SFTP 不支持正则表达式,但是有其他方法可以做到这一点吗?如果这在 SFTP 中不可能,有没有办法使用 scp 或 rsync 来做到这一点?
答案1
该rsync
命令可以做到这一点
rsync --dry-run -avR remoteHost:'/path/to/./D*/f1' /path/to/target
正如 一样ssh
,如果需要,该remoteHost
组件也可以是remoteUser@remoteHost
。源路径中的点/./
标记了目录将包含在副本中的位置。如果您想写入当前目录,则/path/to/target
可能是这样。.
例子
mkdir -p /tmp/src/D{1,2,3} /tmp/dst
touch /tmp/src/D{1,2,3}/f{1,2,3}
rsync -avR localhost:'/tmp/src/./D*/f1' /tmp/dst/
ls -R /tmp/dst