sudo find / -name "*" | xargs grep -sn --color=auto "-j"
El comando anterior regresa a continuación:
grep: invalid option -- 'j'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
...
¿Cómo busco la cadena -j? ?
Respuesta aceptada:
En tu caso "-j" es interpretado por grep como un argumento/opción, no como un patrón de búsqueda, incluso si lo citó. Para que sea el patrón de lo que desea buscar, simplemente use -e opción:
sudo find / -name "*" | xargs grep -sn --color=auto -e "-j"
o incluso:
sudo find / -name "*" | xargs grep -sn --color=auto -e -j
El -e argumento/opción significa que el siguiente argumento es el patrón. Esto es de man grep :
-e PATTERN, --regexp=PATTERN
Use PATTERN as the pattern. This can be used to specify
multiple search patterns, or to protect a pattern beginning with
a hyphen (-). (-e is specified by POSIX.)
Otras formas:
-
usar
--, como dijo @Rinzwind en su respuesta, para hacergreppara saber que las opciones terminaron. -
usar
para escapar del guión (-):sudo find / -name "*" | xargs grep -sn --color=auto "-j"