如何在linux中检查目录是否存在。?
给定一个文件路径(例如,如何在linux中检查目录是否存在。?,linux,shell,Linux,Shell,给定一个文件路径(例如,/src/com/mot),如何检查mot是否存在,如果它不使用Linux或shell脚本,如何创建它???使用bash/sh/ksh,您可以执行以下操作: if [ ! -d /directory/to/check ]; then mkdir -p /directory/toc/check fi 对于文件,将-d替换为-f,然后您可以对不存在的文件执行所需的任何操作。创建目录,如果该目录已经存在,则不会给出错误。检查目录是否存在 test -d /src/co
/src/com/mot
),如何检查mot
是否存在,如果它不使用Linux或shell脚本,如何创建它???使用bash/sh/ksh,您可以执行以下操作:
if [ ! -d /directory/to/check ]; then
mkdir -p /directory/toc/check
fi
对于文件,将
-d
替换为-f
,然后您可以对不存在的文件执行所需的任何操作。创建目录,如果该目录已经存在,则不会给出错误。检查目录是否存在
test -d /src/com/mot || mkdir /src/com/mot
if [ -d "$DIRPATH" ]; then
# Add code logic here
fi
检查目录不存在
if [ ! -d "$DIRPATH" ]; then
# Add code logic here
fi
如果您只在目录不存在的情况下检查目录以创建它,那么您最好使用:
mkdir -p /src/com/mot
如果不存在,将创建目录,否则将不执行任何操作。这是BAIC,但我认为它可以工作。如果您希望有一个动态列表来循环和检查,那么必须设置一些变量
if [ -d /src/com/mot ];
then
echo Directory found
else
mkdir /src/com/mot
fi
希望这就是你想要的…你实际上不需要支票
mkdir-p
不作用于现有目录。这是一个公平的观点。我将把它留在这里,好像给了OP一个框架,以防他们想在mkdir
之前做其他事情。注意,如果目录是在第一行和第二行之间创建的,这会给出一个竞争条件。@Sjoerd确实如此,但这种竞争条件(尽管概率窗口小得多)如果只使用mkdir-p
(除非某些文件系统实现并公开原子检查或创建函数调用),也会发生这种情况。至少在上面的代码中,如果对现有目录进行错误调用,mkdir调用不会失败(因为仍然提供了-p
选项)。@Christian如果您想要原子检查或创建函数,请查看mkdir(2)您缺少“;”在if子句的结尾']'之后。@Chirstian the';'在“]”之后不需要,并且“]”不是右括号。对于命令“[”,后面的“]”只是该命令的一个参数。换行符的作用与分号相同。@williampersell我的评论是关于问题的第一次修订,在“test”命令(或“括号”,很抱歉命名错误)后的“]”后面没有换行符,在这种情况下,“;”在<代码>之前是必需的,不是吗?@christian,是的,要么换行,要么换行;是必需的。当我看到这个问题时,新线已经就位。这是否回答了你的问题?