Во-первых, обратите внимание, что интерпретация аргументов, начинающихся с тире, зависит от запускаемой программы, grep
или другой. Оболочка не имеет прямого способа управлять им.
Если вы хотите обрабатывать такие файлы (, а не игнорировать их полностью ), grep
, как и большинство программ, распознает --
как указание на конец опций, поэтому
grep -r -e "stuff" -- *
сделает то, что вы хотите. -e
присутствует в том случае, если stuff
также начинается с -
.
Кроме того, вы также можете использовать:
grep -r -e "stuff" ./*
Последнее также позволит избежать проблемы, если в текущем каталоге есть файл с именем -
. Даже после разделителя --
grep
интерпретирует -
как стандартный ввод, а ./-
— это файл с именем -
в текущем каталоге.