mkdir不做路径扩展

时间:2017-03-29 06:54:01

标签: bash

所以我有文件夹aa

$ mkdir aa

ls命令的路径扩展的工作原理如下:

$ ls -la a*
total 0
drwxr-xr-x 1 a a 0 Mar 29 08:41 ./
drwxr-xr-x 1 a a 0 Dec 31  1979 ../
$ ls -la a?
total 0
drwxr-xr-x 1 a a 0 Mar 29 08:41 ./
drwxr-xr-x 1 a a 0 Dec 31  1979 ../

但mkdir的“相同”显示错误:

$ mkdir a*/bb
mkdir: cannot create directory 'a*/bb': No such file or directory
$ mkdir a?/bb
mkdir: cannot create directory 'a?/bb': No such file or directory

我在哪里可以阅读为什么会出现这种行为上的差异,并且让mkdir对于像ls这样的行为更“聪明”有简单的技巧吗?

2 个答案:

答案 0 :(得分:1)

这不起作用,因为在将参数传递给mkdir之前完成了通配符扩展。 bash尝试展开a*/bb,找不到匹配并告诉您。这里甚至没有调用mkdir。你也可以尝试例如。

echo a*/bb

或者像之前一样

ls -la a*/bb

这两个命令都会给你相同的错误信息。

答案 1 :(得分:0)

尝试:

mkdir -p a*/aa
mkdir -p a?/aa