grep gesamte Dateisystemblöcke auf Geräten

grep gesamte Dateisystemblöcke auf Geräten

Befehl

grep -rHinF --colour=always -e "aa:aa:aa:aa" /

Ausgabe

grep: /dev/geom.ctl: Operation not supported by device
grep: /dev/devctl: Device busy

Es scheint, dass es grepnicht weitergehen kann, weil auf ein Gerät gewartet wird. Wie kann ich solche Geräte überspringen?

Antwort1

Wenn findverfügbar, versuchen Sie:

find / -type f -exec grep -rHinF --colour=always -e "aa:aa:aa:aa" {} +

Dies gilt nur für normale Dateien, Block- und Zeichengeräte werden also übersprungen. Siehe man find.

Sie möchten wahrscheinlich Verzeichnisse wie /procoder überspringen /sys; wie Stephane Chazelas in den Kommentaren anmerkt, werden einige Dateien darin blockiert (bleiben geöffnet und blockieren die Suche), wenn Sie sie lesen. Dazu könnten Sie die Direktive -xdevaka. ausprobieren -mount, vorausgesetzt, der Rest Ihres Dateisystems befindet sich auf einem Gerät. Wenn die -fstypeDirektive für Sie funktioniert, wäre das besser (leider funktioniert sie bei mir unter Linux nicht).

Meiner Meinung nach sollten Sie, anstatt damit herumzuspielen, den Vorgang einfach für alle Toplevel-Verzeichnisse wiederholen, die Sie wirklich durchsuchen möchten, und nicht versuchen, alles auf einmal zu erledigen (in diesem Fall benötigen Sie „find“ möglicherweise nicht …).

verwandte Informationen