在Bash/Shell中覆盖mkdir

4

为了更加方便,我喜欢这样覆盖mkdir:

mkdir() {
  if [[ "$@" == *--parents* ]]; then
    builtin mkdir "$@"
  else
    builtin mkdir "$@" --parents
  fi
}

很遗憾,没有内置的mkdir。我该如何规避这个问题并完成任务?


1
似乎你总是想使用 mkdir 命令的 --parents 参数,为什么不直接给它创建一个别名:alias mkdir='mkdir -p' - Mithrandir
1
太好了!我很想把这个选为最佳答案 ;) - LeMike
2个回答

4
您可以使用内置的command代替:
mkdir() {
  if [[ "$@" == *--parents* ]]; then
    command mkdir "$@"
  else
    command mkdir "$@" --parents
  fi
}

0
mkdir_p=`which mkdir`

之后你可以这样调用它:

$mkdir_p args...

或者

alias mkdir=¨mkdir -p¨

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接