用shell脚本实现递归创建目录,相当于mkdir -p /tmp/a/b/c/d/e
代码:
[code="shell"]
# cat mkdir_recursive.sh
#!/bin/sh
mkdir_recursive()
{
if [ -z $1 -o $1 = "/" ]; then
return
fi
parent_dir=`dirname $1`
mkdir_recursive $parent_dir
if [ ! -d $1 ]; then
echo "mkdir $1"
mkdir $1 || exit -1
fi
}
mkdir_recursive $1
#
[/code]
执行结果:
[code="shell"]
# ls /tmp/a
ls: /tmp/a: 没有那个文件或目录
# ./mkdir_recursive.sh /tmp/a/b/c/d/e
mkdir /tmp/a
mkdir /tmp/a/b
mkdir /tmp/a/b/c
mkdir /tmp/a/b/c/d
mkdir /tmp/a/b/c/d/e
# ls /tmp/a/b/c/d
e
#
[/code]
代码:
[code="shell"]
# cat mkdir_recursive.sh
#!/bin/sh
mkdir_recursive()
{
if [ -z $1 -o $1 = "/" ]; then
return
fi
parent_dir=`dirname $1`
mkdir_recursive $parent_dir
if [ ! -d $1 ]; then
echo "mkdir $1"
mkdir $1 || exit -1
fi
}
mkdir_recursive $1
#
[/code]
执行结果:
[code="shell"]
# ls /tmp/a
ls: /tmp/a: 没有那个文件或目录
# ./mkdir_recursive.sh /tmp/a/b/c/d/e
mkdir /tmp/a
mkdir /tmp/a/b
mkdir /tmp/a/b/c
mkdir /tmp/a/b/c/d
mkdir /tmp/a/b/c/d/e
# ls /tmp/a/b/c/d
e
#
[/code]