Directory

查找所有不包含匹配子目錄的目錄並創建它們

  • November 22, 2019

我有以下目錄結構:

/media/storage/sqlbackup/CUSTOMER1
/media/storage/sqlbackup/CUSTOMER2
...
/media/storage/sqlbackup/CUSTOMER*

每個CUSTOMER*目錄可能包含名為dailyweekly和的子目錄monthly。如果一個CUSTOMER*目錄不包含dailyOR weeklyOR monthly,我希望它被創建,如果它包含,那麼我希望它保留。

前: CUSTOMER1/daily

後: CUSTOMER1/{daily,weekly,monthly}

我試圖通過巧妙地使用 find 來做到這一點,但試圖返回所有不匹配的內容。

您可以創建目錄,同時隱藏與已經存在的目錄相關的任何錯誤:

for custDir in /media/storage/sqlbackup/CUSTOMER*
do
   mkdir -p "$custDir"/{daily,weekly,monthly}
done

您不能使用/media/storage/sqlbackup/CUSTOMER*/{daily,weekly,monthly},因為{...}序列在萬用字元之前擴展,並且萬用字元模式只會匹配存在的文件/目錄。

引用自:https://unix.stackexchange.com/questions/553648