Как массово переместить файлы в папки по названию файла в 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"