Problem mit "Find" und "grep"

P

pstein

Ich will mir alle Dateien auflisten lassen ausser denjenigen die
' /proc/' oder ' /sys/' enthalten (Beachte das führende Leerzeichen).

Ich habe zunächst mal versucht:

find / -exec ls -ld {} | grep -v ' /proc/| /sys/' \; > /tmp/list.txt

Das funktioniert aber nicht. Ich bekomme eine Fehlermeldung der Art:

grep: ;: No such file or directory
find: missing argument to `-exec'

Wie sollte der Befehl sonst lauten?

Peter
 
Hallo Peter,

hier stand bis eben nur Blödsinn von mir, entschuldige, ich hatte dein Statement nicht korrekt gelesen.
 
Zuletzt bearbeitet:
Dein Kommando hat mehrere Fehler:

* scheinbar willst du den output von find mit grep filtern, das `\;` muss also noch vor die erste pipe
* um mehrere Sachen mit einem grep-Kommando zu filtern, brauchst du reguläre Ausdrücke, diese gibt es nur mit `egrep` oder `grep -E`
* der reguläre Ausdruck mit mehreren Möglichkeiten gehört in runde Klammern

Letztendlich wäre die korrigierte Variante also eher so (Leerzeichen vor der öffnenden runden Klammern inklusive):

Code:
find / -exec ls -ld {} \; | egrep -v ' (/proc/|/sys/)' > /tmp/list.txt


Generell scheint diese Art die Suchergebnisse zu filtern relativ umständlich, das kann man mit find-eigenen Mitteln wahrscheinlich einfacher haben:

Code:
find / ! -name " /sys/" ! -name " /proc/"
 

Ähnliche Themen

MySQL Problem

kompilier problem

Problem mit HLTV Script

Open-Xchange auf OpenSuse mit Commu. Installer - Compiler Fehler

Composite oder Svideo Ausgang mit Geforce

Zurück
Oben