ftp -inv $HOST >> $TMPLOGFILE 2>&1 << ENDFTP
user $USER $PASS
binary
cd gpeh
lcd gpeh
put nameoffile *this is where I want the results of the "find" to go*
bye
ENDFTP
以上是我用于ftp的代码,下面是一个示例查找脚本。
find ./gpeh
所以基本上我想要做的是,取出主机“gpeh”文件夹中的所有文件,然后将它们放在远程机器“gpeh”文件夹中。有时文件的数量将是1(好吧,在大多数情况下,它应该是1,唯一不会是前一个小时的ftp失败,所以原始文件仍然存在,而新的文件仍然存在添加这个小时),有时它会更多。
如果我只想说使用“find”命令删除我在gpeh文件夹中找到的文件,我可以使用
find ./gpeh | xargs delete "and whatever conditions here"
但我不能在FTP内(或许我可以)这样做,所以我真的不知道该怎么做。
提前感谢他
答案 0 :(得分:2)
尝试以下
#!/bin/bash
PUT_FILES=$(find . -name "*" -printf "put %p\n")
ftp -inv $HOST >> $TMPLOGFILE 2>&1 << ENDFTP
user $USER $PASS
binary
cd gpeh
lcd gpeh
$PUT_FILES
bye
ENDFTP
<强>解释强>
find . -name "*" -printf "put %p\n"
在当前目录.
任意名称文件"*"
中,打印格式为"put %p\n"
PUT_FILES=$(...)
将输出捕获到变量。$PUT_FILES
将通过ftp扩展和执行。