Tuve que buscar recientemente una contraseña que podría haberse guardado en un archivo. No quería que esa línea apareciera en la historia de bash.
¿Cómo puedo evitar que una contraseña u otra información confidencial se almacene en el historial de bash cuando uso grep? Por ejemplo, ¿cómo puedo obtener grep para leer el patrón desde stdin o consola?
Solo para completar, respondo la pregunta en el cuerpo: cómo obtener grep para leer patrones de stdin:
Puedes usar la
-f
opción:Eso leerá cualquier número de patrones
stdin
, uno por línea. (-
significastdin
; también puede especificar un archivo con patrones, uno por línea).grep
Coincidirá con las líneas/path/to/file
que coincidan con cualquiera de los patrones especificados.fuente
Esto es lo mejor que se me ocurrió:
¿Es esto lo suficientemente seguro? ¿Hay alguna forma de recuperar el patrón que no sea desplazar el terminal? ¿Hay una mejor manera?
fuente
read -s
para evitar el eco (consulte también esta pregunta ). Sinps
embargo, el secreto será visible en la salida. En su lugar, puede usargrep -f /dev/stdin *
(ogrep -f - *
) para que grep lea los patrones de un archivo, termine la entrada con^D
, o:(read -es; echo $REPLY) | grep -f - *