[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Как укротить find?



А нету никаких "особых случаев".
Элементы наподобие звёздочки или точки с запятой по умолчанию
обрабатываются шеллом. Точка. И в команду попадает уже результат
обработки - не символы "звёздочка точка флак", а уже список файлов. Ну,
и точка с запятой на последовательность запуска влияет - опять таки
последовательность запуска команд в шелле.
Соответственно, если эти или какие-то подобные символы -  ну,  например,
знак амперсанда - хочется передать самой команде напрямую, их либо надо
поодиночке заэкранировать, либо весь аргумент в кавычки поставить.
Самое сложное тут - осознать, где кончается область ответственности
шелла и начинается работа самой команды.

Mikhail Ramendik wrote:
>
>
> 2008/9/8 Dmitry Fedorov <dm.fedorov@gmail.com
> <mailto:dm.fedorov@gmail.com>>
>
>     2008/9/8 locke314:
>     > кажется, так:
>     > $ find -name *.flac -exec ./myecho {} \ ;
>
>     неа - * незаэкранирована.
>     судя по отсутствию первого обязательного параметра - стартовой
>     директории поиска,
>     в текущей директории есть файлы *.flac, которые расширятся шеллом и
>     find обломится.
>
>
> К счастью, файлов  в самой директории не было и всё вроде бы работает.
>
> Пошёл изучать альтернативы bash внимательно. Такое количество "особых
> случаев" с нормальным скриптованием по-моему несовместимо.
>
>
> -- 
> Yours, Mikhail Ramendik


Reply to: