Переместить файлы в каталоги на основе имени файла
У меня есть файлы, которые загружаются в один каталог (/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 (дважды?), Она покажет вам все включенные файлы. Если вы затем делаете возврат и добавляете [снова, вы знаете, что находитесь на правильном пути.