Линукс это здорово. Суть проблемы такая. Вот прямо с листа как есть, думаю есть много похожих проблем водится у народа. Есть папка с компилированными шаблонами смарти. Если грохнуть все компиленные шаблоны в ерорлоги нападает ошибок на тему не могу найти бла-бла-бла такой шаблон. Это потому, что боевая площадка под нагрузкой, и удаление попадает между вызовом страницы с проверкой оригинала шаблона + проверкой наличия компиленной версии и обращению к скомпилированному шаблону. То есть обратились, оригинал проверили ок и скомпиленный шаблон есть, а тут мы такие со своим удалением. Ну это ерунда конечно. Пользователь просто увидит недозагруженную страницу без ошибок, клацнет по ф5 и расслабится, поскольку на этот раз штатный механизм отработает правильно и шаблоны перекомпилируются.
Так вот, чтобы не грохать всё и не портить людям жизнь ("не ломайте мой кайф!!!" ©) бывает нужно грохнуть один единственный шаблон с уникальным именем. Скомпилированные шаблоны имеют не сильно красивые имена вроде%что-то_адское%оригинальное_имя_шаблонаВ mc искать неудобно, то есть просто нереально потому что он совсем некрасиво сокращает имена. Как быть. Да всё просто.
# убедимся что мы в целевой папке pwd # ага, всё ок, теперь ищем шаблон ls | grep ololo # тут нам вернут имя шаблона, можно просто набить unlink # выделить полученное имя и копирнуть его в командную строку # но когда тебе надо это исполнить раз несколько подряд.. # мышь утомляет. Как автоматом сунуть анлинку результат? Легко! unlink `ls | grep ololo`rem: unlink не возьмет больше одной строчки с параметрами. Поэтому если греп вернет больше одного файла всё поломается. Для страховочки можно использовать ключик для грепа который ограничевает кол-во результатов, выглядит это так grep -m 1 ololo, тут греп вернет строго не больше одного файла. Но это уже по сути к делу не относится. Этот тип для разумных, мыслящих гуманоидов тусующих по консолям.
Дальше конечно возник вопрос как быть если хочется грохнуть все файлы по маске а не только первый найденный. Выручили старшие товарищи, получилось сложнее и в то же время интереснее. Итого:
ls -1 | grep ololo | while read; do unlink "$REPLY"; doneЧтобы понять что происходит вместо unlink можно вставить простое echo.