Linux / UNIX: List Open Files for Process

Posted on in Categories , , , , , last updated March 5, 2008

Q. How do I list all open files for a Linux or UNIX process using command line options?

A. Both Linux and UNIX like operating systems comes with various utilities to find out open files associated with process.

Task: UNIX List Open Files For Process

First use ps command to get PID of process, enter:
$ ps -aef | grep {process-name}
$ ps -aef | grep httpd

Next pass this PID to pfiles command,
$ pfiles {PID}
$ pfile 3533

Task: Linux List Open Files For Process

First you need to find out PID of process. Simply use any one of the following command to obtain process id:
# ps aux | grep {program-name}
OR
$ ps -C {program-name} -o pid=
For example, find out PID of firefox web-browser, enter:
$ ps -C firefox -o pid=
Output:

 7857

To list opne files for firefox process, enter:
$ ls -l /proc/7857/fd
Sample output:

total 0
lr-x------ 1 vivek vivek 64 2008-03-05 22:31 0 -> /dev/null
l-wx------ 1 vivek vivek 64 2008-03-05 22:31 1 -> pipe:[18371]
lr-x------ 1 vivek vivek 64 2008-03-05 22:31 10 -> /usr/lib/firefox/firefox
l-wx------ 1 vivek vivek 64 2008-03-05 22:31 2 -> pipe:[18371]

lsof command

lsof command list open files under all Linux distributions or UNIX like operating system. Type the following command to list open file for process ID 351:
$ lsof -p 351

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

22 comment

  1. How can i see all files that opened by a specific pid and all it’s threads.
    My C++ program opens 200 threads per process but i do not see all file descriptors that were opened by each thread.

  2. Hi there,

    Is it possible to do it in the opposite direction. How to know which process created a particular file?

    I’ve just discovered your site, thanks a lot for sharing so much good stuff.

    Javier.

  3. fuser -m (or . in case file is not accessible)
    will return all processes that have locked this file (or directory in case file is not accessible)
    then proceed as suggested with lsof -p | grep

  4. I am using weblogic osb in red hat linux system,and the command pfiles is not found.
    My aim is to find File Descriptor’s total capacity

    command which i am running is:
    procfiles | grep rlimit

    Please help.

Leave a Comment