如何检查目录是否存在于linux中。?

问题描述:

给定文件路径(例如/src/com/mot),如何检查mot是否存在,如果不使用Linux或shell脚本创建它?如何检查目录是否存在于linux中。?

使用bash/SH/KSH,你可以这样做:

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

对于文件,以取代-f-d,那么你可以做你需要的不存在的文件的任何操作。

+7

你实际上并不需要检查。 'mkdir -p'不作用于现有的目录。 – thiton 2012-01-09 15:11:55

+1

这是一个公平点。我会留下它,好像给了OP的框架,以防他们想在'mkdir'之前做其他事情。 – 2012-01-09 15:13:27

+1

请注意,如果在第一行和第二行之间创建目录,则会出现争用情况。 – Sjoerd 2012-01-09 15:14:10

test -d /src/com/mot || mkdir /src/com/mot 

mkdir -p没有,如果它已经存在,给了一个错误创建目录。

检查目录存在

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

检查目录不存在

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

好吧,如果你只检查的目录,如果它不存在,创建它,你也可以使用:

mkdir -p /src/com/mot 

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

这是baisc,但我认为它的工作原理。如果您希望有一个动态列表循环查看,则必须设置一些变量。

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

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

+0

您错过了';'在if条款的结尾']之后。 – 2012-01-09 15:16:06

+0

谢谢..固定的 – Silvertiger 2012-01-09 15:26:14

+0

@Chirstian';' ']'后不需要,']'不是右括号。在命令'['的情况下,结尾的']'只是该命令的一个参数。换行符与分号具有相同的用途。 – 2012-01-09 15:30:02