linux – 如何重定向结果“!find …”命令来放置lftp命令

linux – 如何重定向结果“!find …”命令来放置lftp命令,第1张

概述我想从lftp中放入来自!find命令的结果的文件. 我试过了: $> lftp -u foo, sftp://barlftp foo@bar$> put < !find ./local -type f 但失败了!! 这有效: $> lftp -u foo, sftp://barlftp foo@bar$> !find ./local -type f | awk '{print "put "$ 我想从lftp中放入来自!find命令的结果的文件.

我试过了:

$> lftp -u foo,sftp://barlftp foo@bar$> put < !find ./local -type f

但失败了!!

这有效:

$> lftp -u foo,sftp://barlftp foo@bar$> !find ./local -type f | awk '{print "put "}' > /tmp/files.lftplftp foo@bar$> source /tmp/files.lftp

还有另一种方式!?我想使用stdio重定向(管道,stdin ……).

解决方法 我已经阅读了整个 man lftp(1),看来你选择的方式实际上是最好的.

>!命令不支持与其他命令直接组合,因为您尝试将< !找 ...
>上传文件的唯一方法是使用put,mput或mirror.镜像对你没用,因为它保留了路径.
> put或mput命令不支持任何指定包含要上载的文件列表的文件的方法.

因此,唯一的可能性就是:生成脚本并使用source来运行它.

您可以尝试将所有文​​件放入一个mput命令:

!find ./local -type f | awk -v ORS=" " 'BEGIN{print "mput "}{print}' > /tmp/files.lftp

但要小心:虽然我没有在文档中找到它,但最大行大小可能有限制!所以我认为最终你的方式是最好的方式.

请注意,您还可以将命令编码为高尔夫:

!find ./local -type f -printf "put %p\n" > /tmp/files.lftp
总结

以上是内存溢出为你收集整理的linux – 如何重定向结果“!find …”命令来放置lftp命令全部内容,希望文章能够帮你解决linux – 如何重定向结果“!find …”命令来放置lftp命令所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1026822.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存