GNU/Linux >> LINUX-Kenntnisse >  >> Linux

lsof - Ausgabe nur auf physische Dateien beschränken - wie?

Lösung 1:

Ich habe gerade einige Manpages durchgesehen, es scheint, dass Sie den Befehl verwenden:

sudo lsof /

Dadurch werden alle geöffneten Dateien im /-Verzeichnis aufgelistet, was alles auf einem Linux-Dateisystem ist. Gerade getestet und es zeigt nur REG und DIR.

Weitere Beispiele:

lsof -a -d 0-999 -c <command name> /
lsof -a -d 0-999 -p <pid> /

0-999 beschränkt es auf Dateien mit einer Dateideskriptornummer.

Lösung 2:

Es könnte einen Schalter geben, aber wenn es Ihnen nichts ausmacht, ihn durch grep zu filtern, können Sie sudo lsof | egrep 'REG|DIR' tun , vorausgesetzt, Sie meinen mit "physischen Dateien" normale Dateien und Verzeichnisse.

Siehe Abschnitt OUTPUT ::TYPE der Manpage man lsof für alle Typen, die in dieser Spalte sein könnten.

Lösung 3:

Das habe ich getan, was perfekt für mich funktioniert hat:

lsof -F n -p 12501 | grep ^n/ | cut -c2- | sort -u

Die -F n Option zu lsof bewirkt, dass nur die Namen ausgegeben werden der geöffneten Dateien. Jede Ausgabezeile, die den Namen einer geöffneten Datei hat, beginnt mit dem einzelnen Zeichen n unmittelbar gefolgt vom Namen . Normal files ist immer der absolute, vollqualifizierte Name der Datei. Die grep ^n/ wählt nur die Zeilen aus, deren Name mit / beginnt (d. h. ein absoluter, vollständig qualifizierter Dateiname); wodurch Dinge wie offene Ports, Sockets, Pipes (wie FIFOs) usw. eliminiert werden. Der cut -c2- eliminiert das erste Zeichen, die n , wobei nur der Dateiname übrig bleibt. Dann endlich die sort -u eliminiert doppelte Einträge.

Eine Einschränkung:Dies schließt Dateien ein, die nicht normal sind solange ihr Name mit einem / beginnt . Beispielsweise würden alle Dateien, die mit folgendem beginnen, eingeschlossen:

  • /dev
  • /proc
  • /sys

Je nach Betriebssystem können weitere vorhanden sein.


Linux
  1. Wie unterscheiden Sie ein Verzeichnis nur für Dateien eines bestimmten Typs?

  2. Linux-Befehl:Wie findet man nur Textdateien?

  3. So bereinigen Sie nur das Ziel in buildroot

  4. Wie kann ich nur relative Pfade in der Find-Ausgabe erzwingen?

  5. Wie kann ich mit ls nur nicht leere Dateien auflisten?

So finden Sie Dateien unter Linux

Bash-Scripting:So schreiben Sie Daten in Textdateien

Gewusst wie:Verwenden von lsof – 10 grundlegende Befehle zur Fehlerbehebung auf Ihrem Linux-Server

Wie bekomme ich nur die Prozess-ID unter Angabe des Prozessnamens in Linux?

Wie kann man nur die erste Zeile von zwei Dateien unterscheiden?

Wie kann ein Prozess in der ps-Ausgabe einen anderen Namen haben?