在绝对路径中使用通配符创建文件

在绝对路径中使用通配符创建文件

我正在尝试在绝对路径中使用正则表达式。例如

mkdir /root/.mozilla/firefox/*.default/test

以 .default 结尾的文件夹名称是动态生成的,但它始终以 .default 结尾。我尝试了 *.default 但它不起作用。

无论如何可以在绝对路径中使用正则表达式吗?

答案1

mkdir /root/.mozilla/firefox/*.default/test

test如果目录尚不存在,则这将不匹配任何内容(因此要么mkdir会看到带有星号的路径,并且可能会出现错误,要么 shell 将对失败的 glob 执行其他操作,具体取决于设置。)

要匹配现有目录并在其中创建另一个目录,您需要执行以下操作:

(cd /root/.mozilla/firefox/*.default/ && mkdir test)

或者

for d in /root/.mozilla/firefox/*.default/ ; do 
    mkdir "$d"/test
done

第一个假设 glob 只匹配一个目录。如果有更多,结果取决于 shell 及其版本。第二个应该test在与 glob 匹配的所有目录中创建目录。

答案2

如果我是正确的,这个命令会做到这一点:

mkdir "$(ls -d /root/.mozilla/firefox/*.default)"/test

相关内容