The -r
steag la grep
îi cere să caute în fiecare fișier din directorul curent și în toate subdirectoarele. (Puteți afla despre -r
, -i
-, și -n
citind documentația, om grep
.)
Comanda s-a potrivit apt.nr.
în dosar .viminfo
, și a tipărit liniile potrivite. Observați în text că spuneți că doriți să căutați apt.nr
dar în captura de ecran (ugh; mult mai bine să copiați și să lipiți ca text) ați tastat de fapt apt.nr.
cu un punct final. În plus, instrucțiunile tale par să dorească să cauți apt. Nu.
(cu un spațiu). Fii conștient că cu grep
, punctul este un caracter wildcard care se va potrivi orice personaj, iar dacă căutați text care conține un spațiu, acesta trebuie sa* fi plasat în ghilimele.Poate ați vrut să rulați această comandă, care caută șirul literal apt. Nu.
fără nicio potrivire cu wildcard?
grep -rF 'apt. Nu.'
Ta grep
de asemenea, a încercat să caute fișierul nano.salvare
, dar se pare că acesta fie nu este deținut de dvs., fie ați eliminat permisiunile de citire de pe acesta. Dacă fișierul se află în propriul director principal, probabil că ați putea elimina în siguranță acest fișier (rm nano.salvare
). Dacă se află într-o zonă comună, fie va trebui să trăiți cu mesajul de eroare, excludeți-l în mod explicit din grep
, sau spuneți shell-ului să o arunce toate mesaje de eroare de la comanda:
grep -Fr 'apt. Nu.' # Traieste cu asta
grep -Fr --exclude='nano.save' 'apt. Nu.' # Excludeți fișierul numit
grep -Fr 'apt. Nu.' 2>/dev/null # Aruncă *toate* mesajele de eroare
Dacă aveți permisiuni de rădăcină, puteți căuta cu acele permisiuni, dar săriți la nivelul rădăcină ar trebui să faceți cu grijă; nu există aproape nicio restricție dacă rulați ca root:
sudo grep -Fr 'apt. Nu.' # Rulați ca root
* Dacă nu este plasat între ghilimele, trebuie să scăpați de fiecare apariție a unui caracter special, cum ar fi un spațiu. Nu am de gând să fac asta aici.