Установите отдельного ssh демона - или другая копия OpenSSH или например, Dropbear - в систему, возможно в /opt
или $HOME
, выполните его на другом порте. Также выполните обновление в мультиплексоре виртуального терминала (tmux
, screen
..) для предотвращения проблем, следующих из потери/отбрасывания соединения на полпути посредством обновления.
Используя статически связанные двоичные файлы и для дополнительного ssh демона и для мультиплексора виртуального терминала имел бы смысл также в этом случае.
for file in *.avi; do
# use perl to transform the file name; could use 'sed -r' too
new_path=$(perl -pe 's|^(.+?)\.S0*(\d+)E0*(\d+)\.(.+)\.(\w+)$|$1/Season $2/Episode $3 - $4.$5|' <<< "$file")
# create directories if needed
mkdir -p "${new_path%/*}"
# move the file
mv -vn "$file" "$new_path"
done
Также обратите внимание на то, что [11807]*. поэтому[11808] необходимо процитировать, поскольку в противном случае оболочка может быть расширена до списка файлов [11809].so[11810] в текущем каталоге.
Эквивалентом вашего GNU [11811]-regex[11812]-типа один было бы:
Обратите внимание, что если вы собираетесь использовать специфический для GNU синтаксис, то вы можете также использовать [11813]-delete[11814] вместо [11815]-exec rm -rf {}. +[11816]. С помощью [11817] -delete[11818] GNU [11819] find[11820] автоматически включает [11821] -depth [11822]. Она не запускает внешние команды, так что таким образом, она более эффективна, Кроме того, это безопаснее, так как удаляет состояние гонки, при котором кто-то может заставить вас удалить неправильные файлы, изменив каталог на сим-ссылку в промежутке между тем, как [11823]find[11824] найдет файл и [11825]rm[11826] удалит его (подробности см. в [11827]info -f find -n 'Security Considerations for find'[11828]).
Следует подумать об использовании [11787]-delete[11788] для файлов и [11789]-exec rmdir[11790] для каталогов..