【问题标题】:Add a new directory in shell script Linux在 shell 脚本 Linux 中添加一个新目录
【发布时间】:2014-09-17 03:31:07
【问题描述】:

如何使用将目录名称作为参数传递的函数来创建新目录?

例子:

CreateNewDirectory \home\Folder1; # Creates a folder named "Folder1" at home # 

【问题讨论】:

  • Unix 不使用反斜杠作为路径分隔符;它使用斜杠 (/)。

标签: linux bash shell directory


【解决方案1】:
foo() {
  dirPath=${1:?Need path to directory as first argument}
  mkdir -- "$dirPath"
}

然后调用:

foo /path/to/my/new/directory

【讨论】:

  • @Alfie 添加-p 可能是一个想法,因此如果中间目录不存在,OP 可以添加您建议的路径而不会出错。
  • 添加未要求的功能(在这种情况下甚至可能掩盖问题)可能不是一个好主意。考虑用户传递/usr/lacol/lib/newDir 之类的参数(假设现有权限)然后想知道为什么预期的/usr/local/lib/newDir 在调用后不存在的情况。几个月后,他们可能会发现里面有垃圾的错字目录/usr/lacol/
  • 使用:?是个好主意。
  • 谢谢...大家的帮助:)
【解决方案2】:

我会选择这个。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-06
    • 2020-03-08
    • 2022-07-06
    • 2021-11-15
    • 1970-01-01
    • 2018-03-02
    • 2015-07-22
    • 1970-01-01
    相关资源
    最近更新 更多