Я пытаюсь написать сценарий sh, который будет запускаться после завершения одной из моих загрузок.
Он должен найти конкретное имя файла в ~ / Downloads и переместить его в другой каталог в зависимости отна имя файла.
Т.е. я скачал последний эпизод Glee, имя файла:
glee_some_trash_files_always_have.mkv
Он должен быть перемещен в
~/TVshows/Glee/
Вот что я смог сделать:
#!/bin/bash
if filename in ~/Downoads; then
result=
if filename = *glee*; then
result= mv $filename ~/TVshows/Glee/
else
if filename = *pokemon*; then
result= mv $filename ~/TVshows/pokemon/
endif
done
Правильно ли подходит мой подход?Пожалуйста, обратите внимание, что я очень плохо знаком с sh.
Заранее спасибо.
###############################################################################
Редактировать: Вот мой сценарий, я надеюсь, что кто-то еще может найти его полезным:
#!/bin/bash
cd "$HOME/Downloads"
# for filename in *; do
find . -type f | while IFS= read filename; do # Look for files in all ~/Download sub-dirs
case "${filename,,*}" in # this syntax emits the value in lowercase: ${var,,*} (bash version 4)
*.part) : ;; # Excludes *.part files from being moved
move.sh) : ;;
# *test*) mv "$filename" "$HOME/TVshows/Glee/" ;; # Using move there is no need to {&& rm "$filename"}
*test*) scp "$filename" "imac@imac.local:/users/imac/Desktop/" && rm "$filename" ;;
*american*dad*) scp "$filename" "imac@imac.local:/users/imac/Movies/Series/American\ Dad/" && rm "$filename" ;;
*) echo "Don't know where to put $filename" ;;
esac
done