Использование команды mv с несколькими подстановочными знаками

Использование команды mv с несколькими подстановочными знаками

Я все еще относительно новичок в Linux, так что будьте помягче с новичком, ладно?

У меня есть скрипты, настроенные на перемещение медиафайлов в определенный каталог на основе его имени. Я использовал подстановочный знак, чтобы добиться этого, но мне нужно сделать его более конкретным, чтобы он перемещал только то, что мне нужно.

Пример:mv /home/user/Downloads/*Horror* /home/user/Downloads/transmission/completed/Series/AHS/

Мне нужно узнать, можно ли включить несколько подстановочных знаков в одну команду перемещения. В предыдущем примере я хочу, чтобы скрипт переместил все эпизоды American Horror Story в каталог AHS. Скрипт работает, но если я загружу что-нибудь еще со словом 'horror', этот файл также будет перемещен.

Возможно ли то, о чем я спрашиваю, или есть какой-то другой метод, который мне следует использовать?

решение1

Попробуйте использовать подстановочный знак, например *American*Horror*. Вы также можете использовать дополнительные подстановочные знаки в исходном пути, например /usr/home/D*/*American*Horror*. В зависимости от того, что находится в вашем каталоге загрузок, простая последовательность символов, например, *A*H*может соответствовать желаемым файлам.

Вы можете использовать сопоставление с образцом, например *[aA]merican*[hH]orror*.

Я обычно либо повторяю команду, добавляя к ней префикс echo, либо использую lsфайлы списков, соответствующие шаблону, перед запуском фактической команды. Это дает возможность настроить шаблон перед выполнением действия.

Связанный контент