Недавно мне пришлось поискать пароль, который, возможно, был сохранен в файле. Я не хотел, чтобы эта строка появлялась в истории bash.
Как я могу предотвратить сохранение пароля или другой конфиденциальной информации в истории Bash при использовании grep? Например, как я могу получить grep для чтения шаблона из стандартного ввода или консоли?
Просто для полноты я отвечаю на вопрос в теле: как заставить grep читать шаблоны из stdin:
Вы можете использовать
-f
опцию:Это будет читать любое количество шаблонов
stdin
, по одному в строке. (-
означаетstdin
; вы также можете указать файл с шаблонами, по одному на строку.)grep
будет совпадать со строками, в/path/to/file
которых совпадает любой из указанных шаблонов.источник
Это лучшее, что я мог придумать:
Это достаточно безопасно? Есть ли способ восстановить шаблон кроме прокрутки терминала? Есть ли лучший способ?
источник
read -s
для предотвращения эха (см. Также этот вопрос ).ps
Хотя секрет будет виден в выводе. Вместо этого вы можете использоватьgrep -f /dev/stdin *
(илиgrep -f - *
), чтобы grep вместо этого считывал шаблон (ы) из файла, заканчивая ввод^D
, или:(read -es; echo $REPLY) | grep -f - *