У меня есть несколько видеофайлов, которые содержат escape-символы, такие как [в сочетании с [1920x1080]. Когда я выполню:
find /run/media/user/usbdisk -type f -iname [HD, 1920x1080] - Wild Wild West.mp4 -ls
тогда я получаю сообщение об ошибке:
find:paths must precede expression
Когда я выполню
find /run/media/user/usbdisk -type f -iname "[HD, 1920x1080] - Wild Wild West.mp4" -ls
Я не получаю результат, хотя я уверен, что файл существует.
Тот же результат (ничего не найдено) при выполнении:
find /run/media/user/usbdisk -type f -iname '[HD, 1920x1080] - Wild Wild West.mp4' -ls
Чтобы получить имя каталога (базовое имя) моего фильма, я сохранил имя в переменной с именем video, так что моя команда наконец-то выглядит так:
dname=$(find /run/media/user/usbdisk -type f -iname "$video" -exec dirname {} \;)
но это приводит к ошибке (см. выше).
Как я могу заставить команду find (или любую другую) точно найти мой точно названный файл, включая управляющие знаки? Есть ли какой-либо способ или необходимо заменить escape-знаки в именах файлов? Я хочу предотвратить это. Заранее спасибо.