linux - 别名 mkdir 以在 Mac 上打印详细输出

标签 linux bash shell

$ type mkdir
$ mkdir is aliased to `command mkdir -p -v'
$ mkdir folder
$ mkdir folder
$ mkdir folder
$ unalias mkdir
$ type mkdir
mkdir is hashed (/bin/mkdir)
$ mkdir folder
mkdir: folder: File exists

为什么别名版本不打印详细输出?

最佳答案

如果要查看已创建文件夹的消息,则需要在别名中删除 -p 选项。尝试以下操作

mkdir folder
alias mkdir="mkdir -v"
mkdir folder

您将看到错误消息。如果你使用这个

mkdir folder
alias mkdir="mkdir -p -v"
mkdir folder

您不会看到它,因为这就是 -p 选项的工作方式。

为什么会这样?如果我们假设 -p 在遇到已经创建的文件夹时实际上给出了一个错误,它将如何处理它创建它们的深层嵌套文件夹,然后重用它刚刚创建的相同文件夹来创建下一个,它是否应该抛出错误。如果这样做,将会在脚本中产生很多错误。

如果你必须听到并思考...... 但为什么它不能只在最后一个目录上抛出错误,即如果它发现它要创建的目录存在,而不是之前的目录...请仔细考虑一下:)

关于linux - 别名 mkdir 以在 Mac 上打印详细输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36615770/

相关文章:

bash - 为什么正确的 shell 脚本会给出包装/截断/损坏的错误消息?

linux - mac上的常用命令行

ruby-on-rails - 在 Capistrano 任务中启动后台进程

c - 脚本和 C 二进制程序之间的竞争条件

linux - "python"与 "sudo python"

linux - 从 Linux 中的文本列中删除命令或/和其他字符

regex - 如何用 tr 或 sed 命令替换 linux 中其他两个字符的空格?

bash - 合并一列时将 .csv 文件与 BASH 进行比较

bash - 不要在多个 bash 脚本中显示 pushd/popd 堆栈(安静的 pushd/popd)

bash - 如何创建秒表 Bash 脚本以不断显示耗时?