Переместить файлы в каталоги на основе имени файла

У меня есть файлы, которые загружаются в один каталог (/media/Downloads/Complete/Movies) но нужен скрипт bash, который перемещает их в каталог назначения на основе имени файла (/media/Movies_A & /media/Movies_B)

Пример:

/media/Downloads/Complete/Movies/Frozen.mkv ---> /media/Movies_A/

Movies with titles A-M go to /media/Movies_A
Movies with titles N-Z go to /media/Movies_B

Я также нуждаюсь в этом, чтобы игнорировать, что "земля" до времени /media/Movies_A/The Land Before Time,

Может кто-нибудь, пожалуйста, помогите?

1 ответ

Этого, наверное, достаточно:

cp /media/Downloads/Complete/Movies/[tT]he[\ .][A-Ma-m]* /media/Movies_A/ 
cp /media/Downloads/Complete/Movies/[tT]he[\ .][N-Zn-z]* /media/Movies_B/
cp /media/Downloads/Complete/Movies/[A-Ma-m]* /media/Movies_A/ 
cp /media/Downloads/Complete/Movies/[N-Zn-z]* /media/Movies_B/

я использовал cp так что вы можете повторить его столько раз, сколько захотите.

[] В команде делает его набором букв. \ Должен покинуть пространство. [\ .] соответствует пробелу или . так что вы также будете копировать The land а также the.land и похожие имена правильно.

Совет: если вы уроните 1-ю клавишу [и напечатаете at или T, а затем нажмете TAB (дважды?), Она покажет вам все включенные файлы. Если вы затем делаете возврат и добавляете [снова, вы знаете, что находитесь на правильном пути.

Другие вопросы по тегам