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 hacergrep
para saber que las opciones terminaron. -
usar
para escapar del guión (
-
):sudo find / -name "*" | xargs grep -sn --color=auto "-j"