簡體   English   中英

如何使用bash腳本進行目錄結構?

[英]How to use the bash script for directory structure?

簡介:我正在嘗試使用 Automator on mac Automator 屏幕截圖並使用此 bash 腳本創建目錄結構

mkdir -p "$1/$2/Client_Name_Social_Media/01_January_2020/Design/Deliverables"

問題:我需要在每個目錄名稱之前添加 Client_name。 我有很多客戶,我不想浪費時間重命名目錄。

最終目錄結構:

  • 客戶名稱
    • Client_Name_Social_Media
      • 客戶名稱_月份
        • Client_Name_Calendars
        • 客戶名稱_設計
          • Client_Name_OpenFiles
          • Client_Name_Deliverables
        • Client_Name_Campaigns

先感謝您

您可以將客戶端名稱存儲在一個數組中,並在循環中遍歷它們以創建目錄。 在您的示例中,要使用客戶端名稱Client1SomeClient2C3創建直至Client_Name_Month的目錄,您可以使用:

for clname in {"Client1", "SomeClient2", "C3"}
do
    mkdir -p "${cln}/${cln}_Social_Media/${cln}_Month"
done

這將創建目錄:

Client1/Client1_Social_Media/Client1_Month
SomeClient2/SomeClient2_Social_Media/SomeClient2_Month
C3/C3_Social_Media/C3_Month

與為存儲在clnames @GoodDeeds 中的新客戶列表從頭開始創建目錄類似,相應的 cli bash答案將是:

clnames=("Client1" "SomeClient2" "C3")
for cln in "${clnames[@]}"; do
   mkdir -p "./${cln}/${cln}_Social_Media/${cln}_Month/${cln}_Calendars"
   mkdir -p "./${cln}/${cln}_Social_Media/${cln}_Month/${cln}_Design/${cln}_OpenFiles"
   mkdir -p "./${cln}/${cln}_Social_Media/${cln}_Month/${cln}_Design/${cln}_Deliverables"
   mkdir -p "./${cln}/${cln}_Social_Media/${cln}_Month/${cln}_Campaigns"
done

注意:這不能直接在您編寫的自動機腳本中工作。

如果您需要以遞歸方式將名為ClientName的現有客戶的目錄結構重命名為JohnSmith它可能如下所示

find . -depth -name 'ClientName_*' -execdir bash -c 'mv "$0" "${0//ClientName_/JohnSmith_}"' {} \;

所以這解決了我的問題:

DIR="$1"
CLIENT="$2"
TMONTH="$(date -j +%d_%B_%Y)"

mkdir -p ${DIR}/${CLIENT}/${CLIENT}_Social_Media/${CLIENT}_${TMONTH}/${CLIENT}_Calendars
mkdir -p ${DIR}/${CLIENT}/${CLIENT}_Social_Media/${CLIENT}_${TMONTH}/${CLIENT}_Design/${CLIENT}_OpenFiles
mkdir -p ${DIR}/${CLIENT}/${CLIENT}_Social_Media/${CLIENT}_${TMONTH}/${CLIENT}_Design/${CLIENT}_Deliverables
mkdir -p ${DIR}/${CLIENT}/${CLIENT}_Campaigns

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM