我有以下目录结构:
/media/storage/sqlbackup/CUSTOMER1
/media/storage/sqlbackup/CUSTOMER2
...
/media/storage/sqlbackup/CUSTOMER*
各CUSTOMER*
目录可能包含名为daily
、weekly
和 的子目录monthly
。如果CUSTOMER*
目录不包含daily
OR weekly
OR monthly
,我希望创建它,如果包含,那么我希望保留它。
前:
CUSTOMER1/daily
后:
CUSTOMER1/{daily,weekly,monthly}
我试图通过巧妙地使用 find 来做到这一点,但试图返回所有不匹配的内容。
答案1
您可以创建目录,同时隐藏与已存在的目录相关的任何错误:
for custDir in /media/storage/sqlbackup/CUSTOMER*
do
mkdir -p "$custDir"/{daily,weekly,monthly}
done
您不能使用,/media/storage/sqlbackup/CUSTOMER*/{daily,weekly,monthly}
因为{...}
序列在通配符之前展开,并且通配符模式只会匹配存在的文件/目录。