Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 将文件移动到相对目录匹配-垃圾邮件处理_Bash_Mv_Spamassassin - Fatal编程技术网

Bash 将文件移动到相对目录匹配-垃圾邮件处理

Bash 将文件移动到相对目录匹配-垃圾邮件处理,bash,mv,spamassassin,Bash,Mv,Spamassassin,我正在设置一个脚本,从maildir文件夹“.LearnAsSpam”学习垃圾邮件 学会垃圾邮件后,我想将所有垃圾邮件移至所有用户的“.Junk”文件夹: 即: /home/vmail/domain1/user1/Maildir/.LearnAsSpam/cur/*-> /home/vmail/domain1/user1/Maildir/.Junk/cur/ /home/vmail/domain1/user2/Maildir/.LearnAsSpam/cur/*-> /home/vmail/d

我正在设置一个脚本,从maildir文件夹“.LearnAsSpam”学习垃圾邮件

学会垃圾邮件后,我想将所有垃圾邮件移至所有用户的“.Junk”文件夹:

即:

  • /home/vmail/domain1/user1/Maildir/.LearnAsSpam/cur/*-> /home/vmail/domain1/user1/Maildir/.Junk/cur/

  • /home/vmail/domain1/user2/Maildir/.LearnAsSpam/cur/*-> /home/vmail/domain1/user2/Maildir/.Junk/cur/


有没有一种简单的方法可以编写一个bash脚本来正确地匹配和移动每个用户的文件?

好的,我认为这会起作用:

find /home/vmail/ -type d -path "*/*/Maildir/.LearnAsSpam/cur" -exec sh -c '(cd {} && mv ./* ../../.Junk/cur)' ';'
以防有人感兴趣,垃圾邮件学习和移动的整个脚本如下所示:

# do a spam check in LearnAsSpam and LearnAsHam folders
# find spam
sa-learn -p ~/.spamassassin/user_prefs --spam /home/vmail/*/*/Maildir/.LearnAsSpam/{cur,new}
# find ham
sa-learn -p ~/.spamassassin/user_prefs --ham /home/vmail/*/*/Maildir/.LearnAsHam/{cur,new}
# move spam
find /home/vmail/ -type d -path "*/*/Maildir/.LearnAsSpam/cur" -exec sh -c '(cd {} && mv ./* ../../.Junk/cur)' ';'
find /home/vmail/ -type d -path "*/*/Maildir/.LearnAsSpam/new" -exec sh -c '(cd {} && mv ./* ../../.Junk/new)' ';'
# move ham
find /home/vmail/ -type d -path "*/*/Maildir/.LearnAsHam/cur" -exec sh -c '(cd {} && mv ./* ../../.Inbox/cur)' ';'
find /home/vmail/ -type d -path "*/*/Maildir/.LearnAsHam/new" -exec sh -c '(cd {} && mv ./* ../../.Inbox/new)' ';' 
这已添加到/etc/cron.daily/spamassassin脚本中