查找所有不包含匹配子目录的目录并创建它们

Kah*_*ahn 0 directory directory-structure mkdir

我有以下目录结构:

/media/storage/sqlbackup/CUSTOMER1
/media/storage/sqlbackup/CUSTOMER2
...
/media/storage/sqlbackup/CUSTOMER*
Run Code Online (Sandbox Code Playgroud)

每个CUSTOMER*目录可以包含命名的子目录dailyweeklymonthly。如果CUSTOMER*目录不包含dailyOR weeklyOR monthly,我希望它被创建,如果它包含,那么我希望它保留。

前: CUSTOMER1/daily

后: CUSTOMER1/{daily,weekly,monthly}

我试图巧妙地使用 find 来做到这一点,但试图返回所有不匹配的内容。

roa*_*ima 6

您可以在隐藏与现有目录相关的任何错误的同时创建目录:

for custDir in /media/storage/sqlbackup/CUSTOMER*
do
    mkdir -p "$custDir"/{daily,weekly,monthly}
done
Run Code Online (Sandbox Code Playgroud)

您不能使用,/media/storage/sqlbackup/CUSTOMER*/{daily,weekly,monthly}因为{...}序列在通配符之前被扩展,并且通配符模式只会匹配存在的文件/目录。