@skyspirit

Как оптимизировать Bash скрипт?

Скрипт переименовывает папки и файлы по sed шаблону из файла. Помогите, пожалуйста, оптимизировать эту процедуру, чтобы скрипт проходился как по папкам разной глубины, так и по файлам и по sed шаблону переименовывал их.
#!/bin/bash
#ищем файлы с расширением .mkv, .m4v
for run in {1..100000}; do
Serials=(/volume1/Geroev_Avenue_18/Shared_Videos/Serials/)
#ищем папку
Search_folder=$(find $Serials -type d \( -iname "*" \) -and -mmin +30  | shuf -n 1 | sed -n '1p' | head -n 1 ); 
#извлекаем название найденного файла
Folder_of_serials_in_search_folder=$(basename -a "$Search_folder")
#извлекаем папку найденного файла
Folder_of_serials_in_destination_folder=$(dirname "$Search_folder")
if [ -n "$Folder_of_serials_in_search_folder" ]; then	
TRS_folder=$( echo "$Folder_of_serials_in_search_folder" |
sed -f /volume1/Geroev_Avenue_18/Software/Synology/Shell/rename.txt )
fi
if [ "$Folder_of_serials_in_search_folder" != "$TRS_folder" ]; then 
mv -nfv "$Search_folder" "$Folder_of_serials_in_destination_folder"/"$TRS_folder"
fi
Search_serials=$(find /volume1/Geroev_Avenue_18/Shared_Videos/ -type f \( -iname "*.mkv" -or -iname "*.m4v" -or -iname "*.mp4" -or -iname "*.ts" -or -iname "*.avi" \) -and -mmin +30 | shuf -n 1 | sed -n '1p' | head -n 1 ); 
#извлекаем название найденного файла
Serials_file=$(basename -a "$Search_serials")
#извлекаем папку найденного файла
Serials_folder=$(dirname "$Search_serials")
#проверяем в сериалах файлы с расширением .mkv, .m4v,соответствующего названия
if [ -n "$Search_serials" ]; then 
Serials_destination=$(find $Serials -type f -iname "$Serials_file" | sed -n '1p' ); 
fi
#извлекаем название найденного файла в сериалах
Serials_file_destination=$(basename "$Serials_destination")
#извлекаем папку найденного файла в сериалах
Serials_folder_destination=$(dirname "$Serials_destination")
#Media Renaimer 
#File
if [ -n "$Serials_file" ]; then	
TRS_file_Videos=$( echo "$Serials_file" |
sed -f /volume1/Geroev_Avenue_18/Software/Synology/Shell/rename.txt )
fi
if [ "$Serials_file" != "$TRS_file_Videos" ]; then 
mv -nfv "$Serials_folder"/"$Serials_file" "$Serials_folder"/"$TRS_file_Videos"
fi
done
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы