我正在尝试在绝对路径中使用正则表达式。例如
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