mkdir -p dir 带括号创建错误

Arc*_*ing 0 bash directory brace-expansion mkdir

我在 Ubuntu 服务器 16.04 xenial 中执行了以下代码:

mkdir -p /root/backups/{db, dirs}
Run Code Online (Sandbox Code Playgroud)

我记得在另一个系统中,它就像创建所有 3 个目录的魅力一样:

/root/backups/
/root/backups/db
/root backup/dirs
Run Code Online (Sandbox Code Playgroud)

然而这一次的结果是:

/root/backups/
/root/backups/{db,
Run Code Online (Sandbox Code Playgroud)

为什么这是部分的、破碎的结果?

Ste*_*itt 11

mkdir -p /root/backups/{db, dirs}
Run Code Online (Sandbox Code Playgroud)

包含空格,所以括号不是扩大,mkdir看到三个参数:-p/root/backups/{dbdirs}。它{db/root/backups, 和dirs}当前目录中创建。

如果你放弃空间,你会得到你所追求的行为。

  • 空间转义或引用后,它会创建`/root/backups/db` 和`/root/backups/␣dirs`,以及空间。这可能不是你想要的。 (4认同)