如果目录不存在,我想使用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 directory: File exists 16 files used (0%) - authorized: 50000 files 1286621 Kbytes used (0%) - authorized: 512000000 Kb (/test2)
但是,如果目录已经存在,它就会失败。我该怎么做才能更优雅呢?
你试过用谷歌搜索这个吗?我得到了很多结果,包括:这个和这个。换句话说,您使用的是最新版本的lftp?
是的,我试过了。LFTP为LFTP | Version 4.0.9 | Copyright (c) 1996-2010 Alexander V. Lukyanov,由回购方安装。
是的,我也找不到答案。但是有一个更新版本的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