Verwenden Sie strace!
Beispiel: Alle Dateien auflisten, die Firefox während einer Sitzung geöffnet hat:
strace -f firefox 2>&1 | grep 'open('
Wenn Sie eine zweite Instanz von FireFox öffnen, führt dies zu folgendem Ergebnis: http://pastebin.com/iRqxgiWN .
Beispiel 2: Alle von FireFox ausgeführten Prozesse auflisten:
strace -f firefox 2>&1 | grep -P 'exec[vlpe]*\('
Beim Besuch von YouTube ergibt sich etwa Folgendes:
[pid 25020] execve("/usr/lib/firefox/plugin-container", ["/usr/lib/firefox/plugin-containe"..., "/usr/lib/adobe-flashplugin/libfl"..., "-greomni", "/usr/lib/firefox/omni.ja", "-appomni", "/usr/lib/firefox/browser/omni.ja", "-appdir", "/usr/lib/firefox/browser", "15198", "false", "plugin"], [/* 57 vars */]) = 0
[pid 25024] execve("/bin/sh", ["sh", "-c", "ps x | grep netscape"], [/* 57 vars */]) = 0
[pid 25025] execve("/bin/ps", ["ps", "x"], [/* 57 vars */] <unfinished ...>
[pid 25026] execve("/bin/grep", ["grep", "netscape"], [/* 57 vars */]) = 0
Sie können dies auch mit vielen anderen Systemaufrufen tun ...
Indem Sie die Parameter von open()in Ihrer grepSuche abgleichen , können Sie auch herausfinden, in welchem Modus die Datei geöffnet wurde:
Fügen Sie einfach | grep -P 'O_RDONLY|O_RDWR'(das führende Pipe-Zeichen ist wichtig!) Hinzu, um den Lesezugriff oder den | grep -P 'O_WRONLY|O_RDWR'Schreibzugriff auf Ihren Befehl zu filtern ...
EDIT :
Wie in den Kommentaren erwähnt, können Sie auch strace -fe open firefoxalle von FireFox geöffneten Dateien auflisten. Sie können auch verwenden strace -fe trace=file firefoxzur Liste alle von FireFox getan Dateioperationen , die einen Dateipfad als Argument haben (offen, stat, lstat, chmod, Zugang, ...).
Viele weitere sind verfügbar! Schauen Sie sich die Manpage zu strace (1) an .