如何使用lftp计算本地目录与远程目录的文件差异?



我正在创建一个脚本,我想将文件从本地目录上传到远程目录,但基于某些条件,我正在计算文件计数并上传文件。

所以我需要文件差异计数来完成我的脚本。

diff -q dir1/ dir2/ | wc -l在本地工作正常,但相同的命令不能与lftp

一起工作。
lftp -e "set ftp:ssl-allow no; diff -q /XXXXX/Y/ tmp/A_000/ | wc -l; bye" -u username,password remote_storage_url

其中/XXXXX/Y/为远端路径,tmp/A_000/为本地路径。

在lftp中不支持diff命令,但我需要解决这个问题。

Edit-1:

我已经尝试了用——dry-run来执行镜像命令,但问题是实际命令显示了传输了多少文件,而——dry-run没有显示。

实际运行:

jayesh@ubuntu:~/test$ lftp -e "set ftp:ssl-allow no; mirror -R tmp/A_000/ /XXXXX/Y/ ; bye" -u username,password remote_storage_url
New: 11 files, 0 symlinks                                                                    
19046373 bytes transferred in 50 seconds (371.8 KiB/s)
To be removed: 0 directories, 11 files, 0 symlinks

与——管制:

jayesh@ubuntu:~/test$ lftp -e "set ftp:ssl-allow no; mirror -R tmp/A_000/ /XXXXX/Y/ --dry-run ; bye" -u username,password remote_storage_url
mkdir -p ftp://username:password@remote_storage_url/%2F/XXXXX/Y/
To be removed: 0 directories, 11 files, 0 symlinks

我想在实际上传之前添加文件计数。

您可以使用——dry-run或——script选项尝试mirror,然后解释日志。

相关内容

  • 没有找到相关文章

最新更新