В сущности, вам нужны два (соединенных )значения :Шаблон < --> Dest dir.
Например, "*.jpg"
< -->~/Downloads/JPG
Это та же структура ассоциативного массива.
Итак, мы можем перечислить все шаблоны -dest в одном массиве (в ksh, bash, zsh)
unset filetype; declare -A filetype
filetype["*.pdf"]="$dir/PDF"
filetype["*.opm"]="$dir/OPM"
filetype["*.yml"]="$dir/YML"
filetype["*.css"]="$dir/CSS"
filetype["*.tar.gz"]="$dir/archives"
filetype["*.zip"]="$dir/archives"
filetype["*.jpg"]="$dir/Pictures"
filetype["*.png"]="$dir/Pictures"
filetype["*.tiff"]="$dir/Pictures"
filetype["*.pm"]="$dir/Perl"
filetype["*.xls*"]="$dir/Excel"
filetype["*.doc*"]="$dir/Word"
Цикл сокращается до:
## Move files to various subfolders based on extensions
for ftype in "${!filetype[@]}" # list of array **keys**
do
find "$dir" -maxdepth 1 -name "$ftype" -exec mv {} "${filetype[$ftype]}" \;
done
Тогда весь сценарий может быть:
#!/bin/bash
LOCKFILE=/tmp/.hiddensync.lock
if [ -e "$LOCKFILE" ]
then
echo "Lockfile exists, process currently running."
echo "If no processes exist, remove $LOCKFILE to clear."
echo "Exiting..."
exit
fi
timestamp=$(date +%Y-%m-%d::%H:%M:%s)
echo "Process started at: $timestamp" > "$LOCKFILE"
dir=~/Downloads
unset filetype; typeset -A filetype
filetype["*.pdf"]="$dir/PDF"
filetype["*.opm"]="$dir/OPM"
filetype["*.yml"]="$dir/YML"
filetype["*.css"]="$dir/CSS"
filetype["*.tar.gz"]="$dir/archives"
filetype["*.zip"]="$dir/archives"
filetype["*.jpg"]="$dir/Pictures"
filetype["*.png"]="$dir/Pictures"
filetype["*.tiff"]="$dir/Pictures"
filetype["*.pm"]="$dir/Perl"
filetype["*.xls*"]="$dir/Excel"
filetype["*.doc*"]="$dir/Word"
## Move files to various subfolders based on extensions
for ftype in "${!filetype[@]}"
do
find "$dir" -maxdepth 1 -name "$ftype" -exec mv {} "${filetype[$ftype]}" \;
done
echo "Task Finished, removing lock file now at $(date +%Y-%m-%d::%H:%M:%s)"
rm "$LOCKFILE"
Решение было:
sudo apt-get install seahorse && seahorse
Дальнейшие шаги по настройке Vorta здесь .
(Удаление (или перемещение для создания резервной копии )файлов в ~/.local/share/keyrings/ решило эту проблему только до следующего перезапуска. В случае с Vorta я мог создать новый репозиторий резервных копий, не получая этой ошибки, но не после перезапуска.)