Я не вижу смысла использовать здесь find
. Вы точно знаете, где что находится, поэтому нет необходимости искать файлы.
Вместо этого, если вы используете оболочку bash
,
#!/bin/bash
shopt -s extglob dotglob
for dirpath in '/media/home/Seagate Expansion Drive/Downloads/Java Spring Gurus'/folder*/
do
mkdir -p "$dirpath"/rest &&
mv -i "$dirpath"/!(*.mp4|rest) "$dirpath"/rest
done
Это зациклит все ваши folder*
каталоги. Для каждого такого каталога он будет создавать в нем подкаталог rest
, а затем перемещать в него все, что не соответствует*.mp4
(или самому каталогу rest
).
Расширенный шаблон подстановки !(*.mp4|rest)
будет соответствовать любому имени, не оканчивающемуся на .mp4
, и не rest
.
Параметры оболочки extglob
позволяют использовать расширенные шаблоны подстановок в bash
, а опция оболочки dotglob
позволяет подстановкам сопоставлять скрытые имена.
Ваш "bash" на самом деле zsh. В более новых версиях macos по умолчанию используется zsh, который по умолчанию будет иметь символ %
в вашем приглашении. Вы можете изменить его с помощью:
chsh -s /bin/bash