如何在Linux或Shell脚本中,通过文件路径(例如/src/com/mot
)检查是否存在mot
文件夹,并在其不存在时创建它?
使用 bash/sh/ksh,你可以这样做:
if [ ! -d /directory/to/check ]; then
mkdir -p /directory/toc/check
fi
对于文件,将-d
替换为-f
,然后你可以在不存在的文件上执行任何操作。
mkdir -p
不会针对已存在的目录执行操作。 - thitonmkdir
之前想做其他事情。 - Chris JEEXIST
。这与mkdir(1) -p
的行为不同。至少在Solaris上(我不知道Linux),-p
选项的行为是使用库例程实现的,该例程使用access()
和mkdir()
迭代每个路径组件 - 不是原子操作。但是,也许我完全误解了你的评论;-) - Christian.K检查目录是否存在
if [ -d "$DIRPATH" ]; then
# Add code logic here
fi
检查目录不存在
if [ ! -d "$DIRPATH" ]; then
# Add code logic here
fi
test -d /src/com/mot || mkdir /src/com/mot
这很基础,但我认为它有效。如果你想要一个动态列表来循环检查,你需要设置一些变量。
if [ -d /src/com/mot ];
then
echo Directory found
else
mkdir /src/com/mot
fi
then
之前加上;
,不是吗? - Christian.K