我正在使用以下语法通过 SFTP 下载目录中的所有文件:
sshpass -p 'mypass' sftp name@$IP:/var/log/*
使用上面的一行代码,我可以从 /var/log 下载所有文件
但我希望将 $IP 附加到每个正在下载的文件名上
我可以针对每个文件执行此操作,即如果我下载单个文件,我可以在文件名前附加 IP。但正如您所猜到的,在某些情况下,我不知道有多少个文件,而且我认为如果我一直使用 SFTP 一次下载一个文件,那么这也是一种开销。
我尝试下载一个在文件名前附加了IP的文件:
sshpass -p 'mypass' sftp name@$IP < <(echo "get /var/log/file1.log ${IP}.file1.log" )
此外,我还检查了 SFTP shell 本身,没有发现任何类型的循环或参数扩展。所以显然如果有办法,它必须像我正在尝试的那样。
注意:SFTP 是唯一的选项,而不是 scp/rsync 等。