Я бы использовал (perl -)rename. В дистрибутивах есть два типа переименования, поэтому вы можете проверить, установлена ли у вас perl-версия переименования с помощью
$ rename --version
perl-rename 1.9
Запустите его с помощью -n
, чтобы проверить команду как «пробный прогон».
$ rename 's/[^0-9]*([0-9]*).*/\1.txt/' * -n
generic name- dd -01 _.txt -> 01.txt
generic name- dd -02 _.txt -> 02.txt
generic name- dd -03 _.txt -> 03.txt
generic name- dd -04 _.txt -> 04.txt
Когда вы будете довольны, запустите саму команду.
$ rename 's/[^0-9]*([0-9]*).*/\1.txt/' *
rename 's/foo/bar/' *
:переименовать все файлы (*
), заменив регулярное выражение foo
на bar
. [^0-9]*([0-9]*).*
:соответствует всем не-числовым символам [^0-9]*
, за которыми следуют числовые символы, заключенные в «группу захвата» ([0-9]*)
, за которыми следуют остальные символы .*
. Это будет соответствовать полному имени файла. \1.txt
:замените имя файла захваченной группой \1
, добавив к ней .txt
. Если у вас установлено более простое переименование, вместо этого вы увидите нечто подобное.
$ rename --version
rename from util-linux 2.33.1
В этом случае вы можете использовать следующие две команды:
$ rename 'generic name- dd -' '' *
$ rename ' _' '' *
Но вместо этого я настоятельно рекомендую изучить perl -rename.
Aria2c не позволяет указать аргумент, поэтому ariahook.sh должен получить адрес электронной почты -самостоятельно:
ariahook.sh может выглядеть так:
myEmailAddress=user206904@gmail.com
pathToCompletedDownload="$3"
echo "$pathToCompletedDownload" | mutt $myEmailAddress -s "download complete"
И вы будете получать электронное письмо каждый раз, когда загрузка будет завершена.