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

Viv*_*vek 14 linux shell

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

Chr*_*s J 20

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

if [ ! -d /directory/to/check ]; then
    mkdir -p /directory/toc/check
fi
Run Code Online (Sandbox Code Playgroud)

对于文件,替换-d-f,然后您可以在不存在的文件上执行您需要的任何操作.

  • 你实际上不需要检查.`mkdir -p`不对现有目录起作用. (7认同)
  • 这是一个公平的观点.我会留下它,但好像给了OP框架,以防他们想在`mkdir`之前做其他事情. (2认同)
  • @Sjoerd确实如此,但是如果您只使用“mkdir -p”(除非某些文件系统实现并公开原子检查或创建函数调用),也会发生这种竞争条件(尽管概率窗口要小得多)。至少在上面的代码中,如果对现有目录进行虚假调用,则 mkdir 调用不会失败(因为无论如何都提供了“-p”选项)。 (2认同)

Sjo*_*erd 7

mkdir -p 创建目录而不会出现错误(如果已存在).


par*_*mar 7

检查目录是否存在

if [ -d "$DIRPATH" ]; then
    # Add code logic here 
fi
Run Code Online (Sandbox Code Playgroud)

检查目录不存在

if [ ! -d "$DIRPATH" ]; then
    # Add code logic here
fi
Run Code Online (Sandbox Code Playgroud)


Eug*_*eck 6

test -d /src/com/mot || mkdir /src/com/mot
Run Code Online (Sandbox Code Playgroud)


Chr*_*n.K 5

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

mkdir -p /src/com/mot
Run Code Online (Sandbox Code Playgroud)

mkdir -p 如果目录不存在,将创建该目录,否则不执行任何操作.