使用UNIX将查找命令中的多个文件添加到单个邮件

时间:2016-11-03 10:52:29

标签: shell unix

通过使用下面的find命令我找到了3个小于30分钟的文件

find /pathA -type f  -mmin -30 -print0

但是我想在一个邮件中发送所有3个文件,附带3个附件。我试过下面的code.it适用于单个文件但是对于多个文件它失败了。请帮帮我。

echo "hi" | mail -s "files older less than 30 min" -a "$(find /pathA -type f  -mmin -30 -print0)" abcd@email.com

2 个答案:

答案 0 :(得分:0)

您需要为每个文件添加单独的-a选项。试试这个:它累积一个数组来保存所有的邮件选项:

mail_opts=( -s "files older less than 30 min" )
while read -d "" -r file; do
    mail_opts+=( -a "$file" )
done < <(find /pathA -type f  -mmin -30 -print0)
echo "message body" | mail "${mail_opts[@]}" abcd@email.com

答案 1 :(得分:0)

你能尝试一下吗?

find /pathA -type f  -mmin -30 -exec bash -c 'uuencode {} {}'  \; | mail -s "files older less than 30 min"  abcd@email.com