如果目录不存在,我想使用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-无法创建目录:File exists: 16 files used (0%) - authorized: 50000 files 1286621 Kbytes used (0%) - authorized: 512000000 Kb (/test2)
但是如果目录已经存在,它会失败。我怎么才能做得更优雅?
可以使用mkdir -f
选项来抑制错误信息。该选项从4.5.2版本开始可用。最新的lftp版本是4.7.3
如果您无法升级到最新版本的lftp,您可以使用以下命令:
lftp -c "cd /my/new/directory || mkdir -p /my/new/directory"
只有在无法进入目录时才会创建目录。
看起来像mkdir -pf /my/new/directory || cd /my/new/directory
对我来说是一个解决方案:没有错误消息,没有错误代码,除非目录有问题(权限,名称作为文件存在等)
UPD:在我的例子中,我只需要创建目录。如果命令在较长的脚本中使用,则可能需要额外的cd
命令,因为上述命令之后的工作目录取决于之前是否存在/my/new/directory
。
你是指简单的mkdir -p /test
吗?
回答这里:如何mkdir仅当一个目录不存在?
From mkdir --help
:
-p,——parents如果存在则没有错误,根据需要创建父目录