Хотя perl , вероятно, будет быстрее, чем перебор большого каталога "x" раз, вот простое решение методом грубой силы.
Внешний цикл определяет, сколько файлов будет перемещено --3 в этом примере. Внутри этого цикла мы инициализируем «самый старый» файл первым именем файла, полученным в результате подстановки *
. Затем внутренний цикл сравнивает временную метку каждого файла, чтобы определить, старше ли он, чем(-ot
)текущий -самый старый файл. Если это так, мы обновляем «самое старое» имя файла. В конце внутреннего цикла мы сообщаем и перемещаем этот файл.
for((count=0; count < 3; count++))
do
set -- *
oldest=$1
for f in./*
do
if [ "$f" -ot "$oldest" ]
then
oldest=$f
fi
done
echo mv -- "$oldest"./.archive
mv -- "$oldest"./.archive
done
ZIP-файл является двоичным, а csv-файл — нет. Электронная почта не предназначена для двоичных файлов.
Добавьте заголовок Content-Transfer-Encoding: base64
и закодируйте zip-файл в base64. Поэтому измените строки для вложения на
echo "--GvXjxJ+pjyke8COw"
echo "Content-Disposition: attachment; filename=$FILENAME"
echo "Content-Transfer-Encoding: base64"
echo ""
base64 $FILENAME
Существует также определенная двоичная кодировка передачи, но она является необязательной и не все почтовые серверы ее поддерживают.