FTP 上传名称和位置包含在文本文件中的文件

FTP 上传名称和位置包含在文本文件中的文件

我有一个包含文件名及其路径的文本文件,例如

列表.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 工作。它基本上是一样的...

相关内容