2015-06-09 101 views
0

方案bash腳本找到&&的mkdir

我在郵件服務器上的開關IMAP客戶端幾千域具有以下結構:

郵件文件夾的位置:/home/mail/domains(只是一個例子)

的Maildir爲domain1.com包含下列文件夾:(再次只是一個例子)

.Sent.2002.May 
.Sent.2002.June 
.Personal.Home.Jack 

的Maildir爲domain2.com包含

.Sent.2008.June 
.Emails.Test.test2 

的Maildir爲domain3.com包含

.Sent.2012.Files 
.Archive.2014.May 

問題:

我的新IMAP客戶端拋出一個錯誤,每當中間文件夾不在那裏。舉例domain1.com

如果.Sent.2002沒有按文件夾存在,當我嘗試查看.Sent.2002.May

任務

我需要一個腳本,它會拋出一個錯誤:

  1. 使用此命名模式在/home/mail/domains/$domain/Maildir/中查找文件夾.$1.$2.$3
  2. 到用戶mail

創建中間夾/home/mail/domains/$domain/.$1.$2/

  • 喬恩/home/mail/domains/$domain/.$1.$2/手動嘗試了一個域和IMAP客戶端錯誤消失。

    需要腳本的幫助。在這種情況下,我不確定如何將參數從find找到mkdir,因爲文件夾名稱總是不一樣。

  • +0

    這很好。祝你好運。你有問題嗎? –

    +0

    嗯,是的,我需要爲概述的任務創建該bash腳本。我的問題是如何?我不知道如何在這種情況下,從'find'參數轉換成'mkdir',因爲文件夾名稱經常變化的。 – Deeh

    回答

    2

    你需要的東西,如:

    for i in `find /home/mail/domains/$domain/Maildir/ -exec basename {} \; ` 
        do 
        DIR=`echo $i | awk -F. '{print "/home/mail/domains/$domain/." $2 "." $3}'` 
        mkdir $DIR 
        chown mail $DIR 
    done 
    

    執行在這裏,我得到:

    mkdir /home/mail/domains/$domain/.Personal.Home 
    chown mail /home/mail/domains/$domain/.Personal.Home 
    mkdir /home/mail/domains/$domain/.Sent.2002 
    chown mail /home/mail/domains/$domain/.Sent.2002 
    mkdir /home/mail/domains/$domain/.Sent.2002 
    chown mail /home/mail/domains/$domain/.Sent.2002 
    
    +0

    正是我需要的。謝謝! – Deeh