bash脚本找到&&的mkdir

问题描述:

方案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

    你需要的东西,如:

    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