mkdir-p
上传用户:tany51
上传日期:2013-06-12
资源大小:1397k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #! /bin/sh
  2. # $XConsortium: mkdirhier.sh,v 1.7 94/03/24 15:46:34 gildea Exp $
  3. # Courtesy of Paul Eggert
  4. #
  5. # Modified by QingLong <qinglong@Yggdrasil.com> for portability. 24-02-97.
  6. #
  7. newline='
  8. '
  9. IFS=$newline
  10. #
  11. # WARNING!  Some ancient shells do not understand `:=' and `:-' expansion.
  12. #           Use just `=' instead of `:=' if you have lame one.
  13. #: ${MKDIR:=mkdir} ${TR:=tr}
  14. #
  15. if test -z "${MKDIR-}" ;
  16.  then
  17.   MKDIR=mkdir
  18. fi
  19. if test -z "${TR-}" ;
  20.  then
  21.   TR=tr
  22. fi
  23. case ${1--} in
  24.   -*) echo >&2 "mkdir-p: usage: mkdir-p directory ..."
  25.       exit 1
  26. esac
  27. status=""
  28. for directory
  29.  do
  30.   case $directory in
  31.     '')
  32.       echo >&2 "mkdir-p: empty directory name"
  33.       status="1"
  34.       continue
  35.       ;;
  36.     *"$newline"*)
  37.       echo >&2 "mkdir-p: directory name contains a newline: ``$directory''"
  38.       status="1"
  39.       continue
  40.       ;;
  41.     ///*) prefix="/"      # See POSIX 2.3 "path".
  42.       ;;
  43.     //*) prefix="//"
  44.       ;;
  45.     /*) prefix="/"
  46.       ;;
  47.     -*) prefix="./"
  48.       ;;
  49.     *) prefix=""
  50.   esac
  51.   #
  52.   IFS=/
  53.   set x $directory
  54.   #
  55.   case $2 in
  56.     */*)
  57.       # IFS parsing is broken
  58.       IFS=' '
  59.       set x `echo $directory | ${TR} / ' '`
  60.       ;;
  61.   esac
  62.   #
  63.   IFS=$newline
  64.   shift
  65.   #
  66.   for filename
  67.    do
  68.     path="$prefix$filename"
  69.     prefix="$path/"
  70.     shift
  71.     #
  72.     test -d "$path" || 
  73.       {
  74.        paths=$path
  75.        for filename
  76.         do
  77.          if test "$filename" != "." ;
  78.           then
  79.            path="$path/$filename"
  80.            paths="$paths$newline$path"
  81.          fi
  82.        done
  83.        #
  84.        ${MKDIR} $paths || status=$?
  85.        #
  86.        break
  87.       }
  88.   done
  89. done
  90. exit $status