【问题标题】:is there any single command to create a file with missing directory structure是否有任何单个命令可以创建缺少目录结构的文件
【发布时间】:2016-05-18 20:58:49
【问题描述】:

是否有任何单个命令可以创建缺少目录结构的文件?

假设我的 shell 脚本中有一个变量 LOG_STORAGE_PATH=/var/log/app-log/access.log,但我不知道 app-log 目录和 access.log 文件是否存在。

是否有一个命令,例如 mkdir -p </some/random/path>,它创建所有中间目录(如果不存在)来创建一个中间缺少目录的文件。

这将在

的帮助下完成
LOG_STORAGE_PATH=/var/log/app-log/
ACCESS_LOG_FILE=access.log
ACCESS_LOG_FILE_PATH=${LOG_STORAGE_PATH}/${ACCESS_LOG_FILE}
if [ ! -d ${LOG_STORAGE_PATH} ]
then
    mkdir -p ${LOG_STORAGE_PATH}
fi  
if [ ! -f ${ACCESS_LOG_FILE_PATH} ]
then
    touch ${ACCESS_LOG_FILE_PATH}
fi

我正在寻找具有与mkdir -p 相同功能的touch 命令,但它不存在。

如果我们有一个touch -p /var/log/app-log/access.log 命令可以创建一个文件以及丢失的目录,或者如果目录存在然后只创建文件或者即使目录和文件都存在然后只需更新@ 987654330@文件。

想一想,也许我们不必在脚本中使用if [ ! -f <some file> ]if [ ! -d <some dir path> ],我们可以直接使用touch -p ${ACCESS_LOG_FILE_PATH}

【问题讨论】:

标签: shell unix


【解决方案1】:

您无法在 unix 中使用单个命令来执行此操作。为此,您需要两个命令(mkdir 和 touch)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 2018-01-26
    • 2018-06-08
    • 2011-07-26
    • 1970-01-01
    • 2012-09-29
    • 2018-07-23
    相关资源
    最近更新 更多