【发布时间】:2014-09-17 03:31:07
【问题描述】:
如何使用将目录名称作为参数传递的函数来创建新目录?
例子:
CreateNewDirectory \home\Folder1; # Creates a folder named "Folder1" at home #
【问题讨论】:
-
Unix 不使用反斜杠作为路径分隔符;它使用斜杠 (/)。
标签: linux bash shell directory
如何使用将目录名称作为参数传递的函数来创建新目录?
例子:
CreateNewDirectory \home\Folder1; # Creates a folder named "Folder1" at home #
【问题讨论】:
标签: linux bash shell directory
foo() {
dirPath=${1:?Need path to directory as first argument}
mkdir -- "$dirPath"
}
然后调用:
foo /path/to/my/new/directory
【讨论】:
-p 可能是一个想法,因此如果中间目录不存在,OP 可以添加您建议的路径而不会出错。
/usr/lacol/lib/newDir 之类的参数(假设现有权限)然后想知道为什么预期的/usr/local/lib/newDir 在调用后不存在的情况。几个月后,他们可能会发现里面有垃圾的错字目录/usr/lacol/。
:?是个好主意。
我会选择这个。
CreateNewDirectory() {
mkdir -p "$1"
}
CreateNewDirectory $HOME/and/any/path/in/between
它允许您创建目录的完整路径,包括其间的所有内容。因此,即使您没有名为 and 或名为 any 或名为 path 的目录等,它也会为您一次性创建整个树而不会出错,而无需这样做
CreateNewDirectory $HOME/and
CreateNewDirectory $HOME/and/any
CreateNewDirectory $HOME/and/any/path
CreateNewDirectory $HOME/and/any/path/in
CreateNewDirectory $HOME/and/any/path/in/between
【讨论】: