![FTP 上传名称和位置包含在文本文件中的文件](https://linux22.com/image/1615419/FTP%20%E4%B8%8A%E4%BC%A0%E5%90%8D%E7%A7%B0%E5%92%8C%E4%BD%8D%E7%BD%AE%E5%8C%85%E5%90%AB%E5%9C%A8%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6.png)
我有一个包含文件名及其路径的文本文件,例如
列表.txt
/dirA/fileA.bin
/dirB/fileC.txt
/dirB/fileD.txt
(...and so on)
我如何通过 ftp 将这些文件上传到已经具有与源匹配的树结构的目标位置,例如,源/dirA/fileA.bin
进入目标位置/dirA/fileA.bin
,等等。
经过搜索,我发现最接近的是以下内容,但并不完全是。
curl -T "{/dirA/fileA.bin}" ftp://XXX/dirA --user abc:xyz
任何帮助都将不胜感激。非常感谢。
答案1
一些 bash 脚本可以为你工作。但是你为什么需要 FTP?如果你可以使用 SSH,那就更容易了……就像这样:
#!/bin/bash
input="/path/to/txt/file"
spawn ssh user@remotecomputer
expect "password:"
sleep 1
send "<your password>\r"
while IFS= read -r line
do
rsync -v -e ssh $line user@remotecomputer:/remotepath
done < "$input"
如果您将公钥导出到远程计算机,您甚至可以在没有初始连接的情况下通过,并且 rsync 可以通过 ftp 工作。它基本上是一样的...