Как массово переместить файлы в папки по названию файла в Mac OS

Admin Bash, Mac OS

Понадобилось мне переместить несколько сотен файлов в Mac OS в отдельную папку со своим именем. Поиск программ для этих целей ни к чему не привёл. Хорошо, что в этой операционной системе есть терминал и скрипты, которые легко могут помочь это сделать без дополнительных программ.

Создаём файл без расширения для будущего Bash скрипта. Открываем этот файл текстовым редактором и копируем туда следующий код:

#!/bin/bash
#
MAIN_DIR=/Users/имя_пользователя/Downloads/требуемая_папка
cd $MAIN_DIR
find . -name '* *' | while read fname
do
    new_fname=`echo $fname | tr " " "_"`

    if [ -e $new_fname ]
    then
        echo "File $new_fname already exists. Not replacing $fname"
    else
        echo "Creating new file $new_fname to replace $fname"
        mv "$fname" $new_fname
    fi
done
find . -type f | while read file;
do
    f=$(basename "$file")
    f1=${f%.*}
    if [ -d "$f1" ] ;
    then
        mv "$f" "$f1"
    else    
        mkdir "$f1"
        chmod 777 "$f1"
        mv "$f" "$f1"
    fi
done

MAIN_DIR – директория, в которой должны находиться файлы, которые требуется перенести. Файлы перенесутся в новые директории в папке, где лежат файлы.

Расширение файлов не важно, можно переносить jpg, gif, php и всё что угодно другое.

Скрипт работает очень быстро, надо быть внимательным, чтобы не перепутать директорию, а иначе перенесется что-нибудь другое.

Сохраняем скрипт и запускаем.

Если вам пригодилась информация, вы можете поблагодарить автора сайта символическим пожертвованием:

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Как массово переместить файлы в папки по названию файла в Mac OS"