Wie erkläre ich, dass ich nur physische Dateien auflisten muss (keine Sockets, keine TCP / IP-Verbindungen, nur physische Dateien)?
Wie erkläre ich, dass ich nur physische Dateien auflisten muss (keine Sockets, keine TCP / IP-Verbindungen, nur physische Dateien)?
Antworten:
Wenn Sie nur einige Manpages durchgesehen haben, erscheint es, als würden Sie den folgenden Befehl verwenden:
sudo lsof /
Dies listet alle offenen Dateien im Verzeichnis / auf, das alles auf einem Linux-Dateisystem ist. Gerade getestet und es werden nur REG und DIR angezeigt.
Mehr 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.
/
Es mag einen Schalter geben, aber wenn Sie nichts dagegen haben, ihn durch grep zu filtern, können Sie dies tun sudo lsof | egrep 'REG|DIR'
, vorausgesetzt, mit "physischen Dateien" meinen Sie reguläre Dateien und Verzeichnisse.
Im Abschnitt OUTPUT :: TYPE der Manpage finden Sie man lsof
alle Typen, die sich möglicherweise in dieser Spalte befinden.
Das habe ich gemacht, was für mich perfekt funktioniert hat:
lsof -F n -p 12501 | grep ^n/ | cut -c2- | sort -u
Mit der -F n
Option lsof
können Sie festlegen, dass nur die Namen der geöffneten Dateien gedruckt werden . Jede Ausgabezeile, die den Namen einer geöffneten Datei enthält, beginnt mit dem einzelnen Zeichen n, unmittelbar gefolgt vom Namen . Reguläre Dateien sind immer der absolute, vollqualifizierte Name der Datei. Der grep ^n/
Wille wählt nur die Zeilen mit einem Namen aus, der mit a beginnt /
(was einen absoluten, voll qualifizierten Dateinamen bedeutet); Auf diese Weise werden offene Ports, Sockets, Pipes (wie FIFOs) usw. entfernt. Das cut -c2-
erste Zeichen, das n
, bleibt nur der Dateiname. Anschließend sort -u
werden alle doppelten Einträge entfernt.
Eine Einschränkung, dies schließt Dateien ein, die nicht regelmäßig sind , solange ihr Name mit a beginnt /
. Beispielsweise wären alle Dateien enthalten, die mit den folgenden beginnen:
Abhängig von Ihrem Betriebssystem gibt es möglicherweise auch andere.