如何在linux中检查目录是不是存在。? [复制]

Posted

技术标签:

【中文标题】如何在linux中检查目录是不是存在。? [复制]【英文标题】:How to check directory exist or not in linux.? [duplicate]如何在linux中检查目录是否存在。? [复制] 【发布时间】:2012-02-06 02:40:34 【问题描述】:

给定一个文件路径(例如/src/com/mot),我如何检查mot 是否存在,如果它不使用Linux 或shell 脚本创建它??

【问题讨论】:

这能回答你的问题吗? How can I check if a directory exists in a Bash shell script? 【参考方案1】:

使用 bash/sh/ksh,您可以:

if [ ! -d /directory/to/check ]; then
    mkdir -p /directory/toc/check
fi

对于文件,将-d替换为-f,然后你可以对不存在的文件进行任何你需要的操作。

【讨论】:

您实际上并不需要支票。 mkdir -p 不作用于现有目录。 这是一个公平的观点。我会把它留在里面,就好像给了 OP 框架一样,以防他们想在 mkdir 之前做其他事情。 请注意,如果目录是在第一行和第二行之间创建的,这会产生竞争条件。 @Sjoerd 确实,但是如果您只使用mkdir -p,也会出现这种竞争条件(尽管概率窗口要小得多)(除非某些文件系统实现并公开了原子检查或-创建函数调用)。至少在上面的代码中,如果对现有目录进行虚假调用,mkdir 调用不会失败(因为无论如何都提供了-p 选项)。 @Christian 如果你想要一个原子检查或创建函数,看看 mkdir(2)【参考方案2】:
test -d /src/com/mot || mkdir /src/com/mot

【讨论】:

【参考方案3】:

mkdir -p 创建目录,如果它已经存在,则不会给出错误。

【讨论】:

【参考方案4】:

检查目录是否存在

if [ -d "$DIRPATH" ]; then
    # Add code logic here 
fi

检查目录不存在

if [ ! -d "$DIRPATH" ]; then
    # Add code logic here
fi

【讨论】:

【参考方案5】:

好吧,如果你只检查目录来创建它,如果它不存在,你还不如直接使用:

mkdir -p /src/com/mot

mkdir -p 如果目录不存在则创建目录,否则什么也不做。

【讨论】:

【参考方案6】:

这是 baisc,但我认为它有效。如果您希望有一个动态列表来循环检查和检查,则必须设置一些变量。

if [ -d /src/com/mot ];
then
    echo Directory found
else
    mkdir /src/com/mot
fi

希望这就是你要找的...

【讨论】:

你错过了';'在 if 子句的结束 ']' 之后。 @Chirstian The ';'在 ']' 之后不需要,并且 ']' 不是右括号。在命令“[”的情况下,尾随的“]”只是该命令的一个参数。换行符的作用与分号相同。 @WilliamPursell 我的评论是关于问题的第一个修订版,它在“测试”命令(或“括号”,抱歉命名错误)之后的“]”之后不包含换行符,在这种情况下';'在then 之前是必需的,不是吗? @christian,是的,换行符或 ;是必须的。当我看到问题时,换行符就位。

以上是关于如何在linux中检查目录是不是存在。? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何检查目录是不是存在?

这个'if [ -e $MY_VARIABLE ]'是不是检查linux中是不是存在变量? [复制]

Python 检查目录是不是存在,然后在必要时创建它并将图形保存到新目录? [复制]

如何在Javascript中检查字符串结束位置是不是存在值? [复制]

VB检查多个文件是不是存在

Sql Server 2008如何检查表中是不是存在列? [复制]