sudo find / -name "*" | xargs grep -sn --color=auto "-j"
Il comando sopra ritorna sotto:
grep: invalid option -- 'j'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
...
Come faccio a cercare la stringa -j
?
Risposta accettata:
Nel tuo caso "-j"
è interpretato da grep
come argomento/opzione, non come modello di ricerca, anche se l'hai citato. Per renderlo il modello per ciò che vuoi cercare, usa semplicemente -e
opzione:
sudo find / -name "*" | xargs grep -sn --color=auto -e "-j"
o anche:
sudo find / -name "*" | xargs grep -sn --color=auto -e -j
Il -e
argomento/opzione significa che l'argomento successivo è il modello. Questo è da 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.)
Altri modi:
-
usa
--
, come ha detto @Rinzwind nella sua risposta, per crearegrep
per sapere che le opzioni sono terminate. -
usa
per evitare il trattino (
-
):sudo find / -name "*" | xargs grep -sn --color=auto "-j"