Użyj strace!
Przykład: Wyświetl listę wszystkich plików otwartych przez Firefox podczas sesji:
strace -f firefox 2>&1 | grep 'open('
Powoduje coś takiego, jeśli otworzysz drugą instancję FireFox: http://pastebin.com/iRqxgiWN (opcja „-f” powoduje po prostu rozwidlenia procesu śledzenia.)
Przykład 2: Wyświetl listę wszystkich procesów wykonanych przez FireFox:
strace -f firefox 2>&1 | grep -P 'exec[vlpe]*\('
Rezultaty czegoś takiego podczas odwiedzania YouTube:
[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
Możesz to zrobić również z wieloma innymi wywołaniami systemowymi ...
Przez dopasowanie parametrów open()w grepwyszukiwaniu można również dowiedzieć się, w jakim trybie plik został otwarty:
Wystarczy dodać | grep -P 'O_RDONLY|O_RDWR'(wiodący znak potoku jest ważny!), Aby odfiltrować dostęp do odczytu lub | grep -P 'O_WRONLY|O_RDWR'do zapisu do polecenia ...
EDYCJA :
Jak wspomniano w komentarzach, możesz także użyć strace -fe open firefoxdo wyświetlenia listy wszystkich plików otwartych przez FireFox. Możesz także użyć strace -fe trace=file firefoxdo wyświetlenia listy wszystkich operacji na plikach wykonanych przez FireFox, które mają ścieżkę do pliku jako argument (open, stat, lstat, chmod, access, ...).
Dostępnych jest wiele innych! Sprawdź stronę podręcznika strace (1) .