2012-10-12 9 views
22

Ich grepping ein lokales svn-Verzeichnis. Als ich grep -r "pattern" . laufen bekomme ich einige Fehler wieWarum zeigt rekursive grep "Keine solche Datei oder Verzeichnis" Fehler?

grep: ./Data/test: Keine solche Datei oder das Verzeichnis

Wer grep bat um nicht vorhandene Dateien zu suchen?


>grep --version 
grep (GNU grep) 2.10 

>lsb_release -a 
No LSB modules are available. 
Distributor ID: Ubuntu 
Description: Ubuntu 12.04 LTS 
+1

Was ist '/ Data/test'? grep kann diese Art von Fehler ausspeien, wenn es auf einen symbolischen Link trifft, der auf eine nicht vorhandene Datei verweist. –

+0

@ j.w.r scheint wie ein gebrochener symbolischer Link (gemäß Dateibefehl). – user13107

+0

Duplizieren von http://stackoverflow.com/questions/6426363/how-can-i-have-grep-not-print-out-no-such-file-or-directory-errors – GlennG

Antwort

21

standardmäßig würde grep nicht inexistent oder nicht lesbare Dateien ignorieren. Dazu müssen Sie die Option -s oder angeben. Zitiert aus man grep.

-s, --no-messages 
      Suppress error messages about nonexistent or unreadable files. 
      Portability note: unlike GNU grep, 7th Edition Unix grep did not 
      conform to POSIX, because it lacked -q and its -s option behaved 
      like GNU grep's -q option. USG-style grep also lacked -q but 
      its -s option behaved like GNU grep. Portable shell scripts 
      should avoid both -q and -s and should redirect standard and 
      error output to /dev/null instead. (-s is specified by POSIX.) 
+4

Danke. Was genau sind nicht vorhandene/nicht lesbare Dateien? – user13107

+3

Ein Beispiel für nicht existent wäre ein gebrochener Symlink. Unlesbar, wie das Wort suggeriert, bezieht sich auf die Dateien, für die der aktuelle Benutzer keine Leseberechtigung hat. – devnull

+0

grep liest '.sql' Dateien nicht für mich –

Verwandte Themen