Шифровать отдельные корневой и домашний разделы

Суффикс имени файла после последней точки может иметь ${file##*.}.

В этом случае, однако, я бы рассмотрел возможность распаковки и кодирования uuen с помощью find -execпрямо так:

#!/bin/sh

dir=/home/as1234/bills

find "$dir" -type f -ctime -1 -name "Sum*.pdf*" -exec sh -c '
    for pathname do
        filename=$( basename "${pathname%.pdf*}.pdf" )
        if [ "${pathname##*.}" = "Z" ]; then
            uncompress -c "$pathname"
        elif [ "${pathname##*.}" = "gz" ]; then
            gzip -cd "$pathname"
        else
            cat "$pathname"
        fi |
        uuencode "$filename" |
        mailx -s "subject ($filename)" abc@gmail.com
    done' sh {} +

Таким образом, вы бы поддерживали пути с пробелами и другими неприятными символами. Скрипт sh -cтакже не хранит несжатые файлы, а распаковывает их, uuencodes и отправляет за один раз.

Я также добавил обработкуgzip-сжатых файлов.

Связанные:


Альтернативная реализация сценария sh -c, использующая case... esacвместо нескольких операторов ifи elif.

find "$dir" -type f -ctime -1 -name "Sum*.pdf*" -exec sh -c '
    for pathname do
        filename=$( basename "${pathname%.pdf*}.pdf" )
        case $pathname in
            *.Z)  uncompress -c "$pathname" ;;
            *.gz) gzip -cd "$pathname" ;;
            *)    cat "$pathname"
        esac |
        uuencode "$filename" |
        mailx -s "subject ($filename)" abc@gmail.com
    done' sh {} +

0
10.06.2020, 02:37
0 ответов

Теги

Похожие вопросы