(←) предыдущая запись ; следующая запись (→)
Тагир Валеев вот рассказал про замечательный способ эксплуатации автоподстановки в bash (мне прям жаль, что я сам не додумался до такого):
«Не пересчитать, сколько было багов и даже эксплойтов с тем, что одна программа запустила другую, а другая не поняла. Потому что пробел не в том месте оказался, кавычек не хватило или ещё что-нибудь. Потому что нет никакой надёжной прослойки, которая бы вас статически проверила.
Причём командные строки генерируются чаще, чем можно подумать. Вы пишете “rm *”, чтобы удалить все файлы в текущем каталоге (но пропустить каталоги). Ваш любимый bash сам распаковывает звёздочку в список файлов. Он не знает, поймёт ли это программа rm. Ему вообще пофигу.
Создайте пустой файл с именем ‘-r’ в текущем каталоге и запустите “rm *“. Упс, вот вы и удалили всё рекурсивно, а вот файл с именем ‘-r’ остался. Даже костыль специальный придумали для этого - опцию ’—‘. Сначала создаём проблемы, а потом отважно решаем. Забыл ’—’ - сам дурак.»