Określ, które pliki są uzyskiwane przez proces

9

Jak mogę znaleźć wszystkie pliki, do których uzyskuje dostęp dany proces?

Używam Ubuntu 9.04.

juan2raid
źródło

Odpowiedzi:

11

lsof wyświetli listę otwartych plików i powiązanych identyfikatorów procesów. Wyświetla wszystko, jeśli nie podano żadnych opcji.

Istnieje opcja, -paby wyświetlić listę otwartych plików dla jednego procesu. W przypadku procesu z PID 6714 wyświetli się lista plików otwartych przez ten proces:

    lsof -p 6714

Aby wyświetlić listę tylko zwykłych plików, można użyć grep do filtrowania danych wyjściowych lsof:

    lsof -p 6714 | grep REG

Jeśli musi być bardziej niezawodny niż w przypadku grep, -Fmożna użyć tej opcji, ale staje się ona bardziej złożona. Ze strony man lsof :

Gdy podano opcję -F, lsof tworzy dane wyjściowe, które są odpowiednie do przetwarzania przez inny program - np. Skrypt awk lub Perl lub program C.

To zależy od twoich wymagań.

Peter Mortensen
źródło
1
Lubię dodać „-b” do lsof, pójdzie to trochę szybciej. Dodam też 2> / dev / null przed potokiem, aby grep.
kbyrd