mkdirhier
上传用户:zibowangxu
上传日期:2007-01-04
资源大小:331k
文件大小:2k
源码类别:

Ftp客户端

开发平台:

Unix_Linux

  1. #!/bin/sh
  2. #
  3. # Copyright (c) 1999 WU-FTPD Development Group.
  4. # All rights reserved.
  5. # Portions Copyright (c) 1980, 1985, 1988, 1989, 1990, 1991, 1993, 1994 
  6. #    The Regents of the University of California.  
  7. # Portions Copyright (c) 1993, 1994 Washington University in Saint Louis.  
  8. # Portions Copyright (c) 1989 Massachusetts Institute of Technology.  
  9. # Portions Copyright (c) 1998 Sendmail, Inc.
  10. # Portions Copyright (c) 1983, 1995, 1996, 1997 Eric P. Allman.  
  11. # Portions Copyright (c) 1996, 1998 Berkeley Software Design, Inc.  
  12. # Portions Copyright (C) 1991, 1992, 1993, 1994, 1995 1996, 1997 
  13. #    Free Software Foundation, Inc.  
  14. # Portions Copyright (c) 1997 Stan Barber.  
  15. # Portions Copyright (c) 1997 Kent Landfield.
  16. # Use and distribution of this software and its source code are governed by 
  17. # the terms and conditions of the WU-FTPD Software License ("LICENSE").
  18. # If you did not receive a copy of the license, it may be obtained online at
  19. # http://www.wu-ftpd.org/license.html.
  20. # $Id: mkdirhier,v 1.4 1999/08/27 14:05:29 wuftpd Exp $
  21. #
  22. newline='
  23. '
  24. IFS=$newline
  25. case ${1--} in
  26. -*) echo >&2 "mkdirhier: usage: mkdirhier directory ..."; exit 1
  27. esac
  28. status=
  29. for directory
  30. do
  31. case $directory in
  32. '')
  33. echo >&2 "mkdirhier: empty directory name"
  34. status=1
  35. continue;;
  36. *"$newline"*)
  37. echo >&2 "mkdirhier: directory name contains a newline: ``$directory''"
  38. status=1
  39. continue;;
  40. ///*) prefix=/;; # See Posix 2.3 "path".
  41. //*) prefix=//;;
  42. /*) prefix=/;;
  43. -*) prefix=./;;
  44. *) prefix=
  45. esac
  46. IFS=/
  47. set x $directory
  48. case $2 in
  49.     */*) # IFS parsing is broken
  50. IFS=' '
  51. set x `echo $directory | tr / ' '`
  52. ;;
  53. esac
  54. IFS=$newline
  55. shift
  56. for filename
  57. do
  58. path=$prefix$filename
  59. prefix=$path/
  60. shift
  61. test -d "$path" || {
  62. paths=$path
  63. for filename
  64. do
  65. if [ "$filename" != "." ]; then
  66. path=$path/$filename
  67. paths=$paths$newline$path
  68. fi
  69. done
  70. mkdir $paths || status=$?
  71. break
  72. }
  73. done
  74.   done
  75. exit $status