所以我有文件夹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这样的行为更“聪明”有简单的技巧吗?
答案 0 :(得分:1)
这不起作用,因为在将参数传递给mkdir
之前完成了通配符扩展。 bash
尝试展开a*/bb
,找不到匹配并告诉您。这里甚至没有调用mkdir
。你也可以尝试例如。
echo a*/bb
或者像之前一样
ls -la a*/bb
这两个命令都会给你相同的错误信息。
答案 1 :(得分:0)
尝试:
mkdir -p a*/aa
mkdir -p a?/aa