LFTP - 如果目录不存在则创建目录

Posted

技术标签:

【中文标题】LFTP - 如果目录不存在则创建目录【英文标题】:LFTP - Create directory if it does not exist 【发布时间】:2017-01-01 19:44:34 【问题描述】:

如果目录不存在,我想使用 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-无法创建目录:文件存在 16 个文件已使用 (0%) - 已授权:50000 个文件 1286621 KB 已使用 (0%) - 已授权:512000000 Kb (/test2)

但如果目录已经存在,它确实会失败。我怎样才能更优雅地做到这一点?

【问题讨论】:

你试过用谷歌搜索这个吗?我得到了许多结果,包括:this 和 this。也就是说,你用的是最新版的lftp吗? 是的,我试过了。 LFTP 是 LFTP | Version 4.0.9 | Copyright (c) 1996-2010 Alexander V. Lukyanov,它是从 repo 安装的。 是的,我似乎也无法在那里找到答案。但是is 有更新版本的 LFTP,你可以尝试升级看看是否有帮助。 仍然不会让我抱有希望,来自我上面评论中的同一页面:版本 3.7.12 - 2009-04-28 修复了 mput -d' command. fixed a core dump on kill 命令上的核心转储。修复了 sftp 协议的 mkdir -p。修复了一些有符号/无符号转换错误。 【参考方案1】:

你是说mkdir -p /test吗?

在这里回答:How to mkdir only if a dir does not already exist?

来自mkdir --help

-p, --parents 如果存在则没有错误,根据需要创建父目录

【讨论】:

我将此添加到我最初的问题中。 -p 不起作用。 lftp 的 mkdir 不等于 linux shell 的 mkdir【参考方案2】:

您可以使用mkdir -f 选项来隐藏错误消息。该选项从 4.5.2 版本开始可用。最新的 lftp 版本是 4.7.3。

【讨论】:

在 lftp v4.7.4 上尝试了 -f,它默默地失败了。我们正在使用 lftp 进行自动部署(不是我的决定),并且在它之后有更多命令,但是即使使用 -f,部署程序也不会继续执行下一个命令。 "mkdir -f /path || .true" 可以帮忙【参考方案3】:

如果你不能升级到最新版本的lftp,你可以使用这个:

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

只有在无法进入的情况下才会创建目录。

【讨论】:

cd /my/new/directory 如果目录不存在也会抛出错误。

以上是关于LFTP - 如果目录不存在则创建目录的主要内容,如果未能解决你的问题,请参考以下文章

Shell 脚本 - 如果目录不存在则创建目录

如果目录不存在,则创建一个目录,然后在该目录中创建文件

MATLAB。写入文本文件或创建它,如果它不存在。将图形保存在目录中,如果不存在则创建它

Linux:如果目标目录不存在,则复制并创建它

Ant:如果不存在,则创建目录

如果 PHP 中不存在,则复制文件并创建目录 [重复]