lftp -c"open -u user,pass server; mkdir /test

lftp -c"open -u user,pass server; mkdir -p /test

如果目录已存在,则失败:

mkdir: Zugriff nicht m?glich:550-Can't create directory: File exists 16 files used (0%) - authorized: 50000 files 1286621 Kbytes used (0%) - authorized: 512000000 Kb (/test2)

但是,如果目录已经存在,它就会失败。我该怎么做才能更优雅呢?

你试过用谷歌搜索这个吗?我得到了很多结果,包括:这个和这个。换句话说,您使用的是最新版本的lftp?

是的,我也找不到答案。但是有一个更新版本的lftp,你可以尝试升级,看看是否有帮助。

不过,我还是不抱希望,我在上面评论的同一页:版本3.7.12-2009-04-28在mput -d' command. fixed a core dump onkill'命令上的固定核心转储。固定的mkdir-p用于sftp协议。修复了一些有符号/无符号转换错误。

您可以使用mkdir -f选项来抑制错误消息。该选项从4.5.2版本开始提供。最新的LFTP版本是4.7.3。

好的,它隐藏了消息,但错误仍然存在。

如果无法升级到最新版本的lftp,则可以使用:

lftp -c"cd /my/new/directory || mkdir -p /my/new/directory"

只有当它不能输入目录时,它才会创建目录。

你的意思是简单的mkdir -p /test?

这里回答:只有当目录不存在时,如何使用mkdir?

来自mkdir --help:

-p, --parents no error if existing, make parent directories as needed

我把这个加到了我最初的问题上。-p不起作用。

lftp的mkdir不等于Linux shell的mkdir

如果目录不存在,我想使用lftp创建一个目录。它应该是一个"一行":这已经起作用了:lftp -c"open -u user,pass server; mkdir /test这个lftp -c"open -u user,pass server; mkdir -p /test如果目录已存在,则失败:mkdir: Zugriff nicht m?glich:550-Can't create direc... yum install lftp -y 然后测试能否远程连接,(我的是sftp,端口6622,默认ftp是21、sftp是22)命令,以下3种格式都是OK的,行不行登进去ls一下就知道了。 格式1: lftp -u username,password sftp://58.30.254...