Как сделать папки для отдельных файлов в каталоге с помощью скрипта bash? - PullRequest
0 голосов
/ 07 апреля 2020

Итак, у меня есть коллекция mov ie, которая выгружается в одну папку (я знаю, что это плохая практика в ретроспективе). Я хочу немного упорядочить вещи, чтобы использовать Radarr для сбора всех соответствующих метаданных, но Мне нужны все отдельные файлы в их собственных папках. Я создал приведенный ниже скрипт, чтобы попытаться немного автоматизировать процесс, но получаю следующую ошибку:

Script

#! /bin/bash

for f in /the/path/to/files/* ;
 do
    [[ -d $f ]] && continue
    mkdir "${f%.*}"
    mv "$f" "${f%.*}"
done

РЕДАКТИРОВАТЬ

Итак, я теперь запускаю скрипт через Shellcheck. net по предложению Бенджамина В. Он не выдает никаких ошибок в зависимости от сайта, хотя я все равно получаю те же ошибки при попытке запустить команда.

РЕДАКТИРОВАТЬ 2 *

Нет ошибок сейчас, но скрипт ничего не делает при выполнении.

1 Ответ

2 голосов
/ 07 апреля 2020

Назначения оцениваются только один раз, а не всякий раз, когда используется назначаемая переменная, что, как мне кажется, предполагает ваш сценарий.

Вы можете использовать al oop следующим образом:

for f in /path/to/all/the/movie/files/*; do
    mkdir "${f%.*}"
    mv "$f" "${f%.*}"
done

При этом используется расширение параметра вместо cut, чтобы избавиться от расширения файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...