How to Recover Deleted Files in Linux

This guide shows you how to recover deleted files in Linux, step by step.

Recovering deleted files in Linux is possible as When you delete a file, it isn’t immediately removed from your system. The file’s data stays on the disk until new data overwrites it. So, acting quickly increases your chances of recovery.

Table of content

To Recover Deleted Files in Linux using lsof command

1. Unmount the Drive (Stop Using It Immediately)

When you realize you’ve deleted an important file, unmount the drive to prevent overwriting.

  • Shut down your system and boot it using a Live CD/USB.
  • Identify the drive where the file was stored (e.g., /dev/sda1).
  • Use recovery tools to recover the file and save it to another location (like an external drive).

2. Use the lsof Command

Sometimes, if a deleted file is still open in a running application, it can be recovered with the “lsof” command.

We have divided this into three steps-

1. We will create a new file
2. Then we will delete the newly created file.
3. And in last we will recover the deleted files in Linux.

1. Create a test file to try this method:

    touch /tmp/testf
    • Open the file using a command like:
    tail -f /tmp/testf &
    • Confirm the file is open by checking its process ID (PID):
    ps -ef | grep tail
    How to Recover Deleted Files in Linux

    2. Delete the file:

    rm /tmp/test
    How to Recover Deleted Files in Linux – step 2

    3. Now the file is deleted, let’s try to recover it.

    1. Use lsof to find the file:
    $lsof | grep -i test
    recover deleted file in linux using lsof command
    Look for the PID of the process holding the file.

    2. Copy the file back to its original location:

      cp /proc/<PID>/fd/<FD> /tmp/
      mv /tmp/<FD> /tmp/test
      How to Recover Deleted Files in Linux – step 4

      -: Recovering of file is done.

      Use Foremost (A Forensic Recovery Tool) to recover deleted files in Linux.

      Foremost is a tool to recover deleted files like images, videos, and documents from storage devices like hard disk, memory card, pendrives etc.

      How to Use Foremost: To use Foremost tool, we need to install it first in the machine.

      1. Install Foremost (if not already installed):

        sudo apt install foremost
        How to Recover Deleted Files in Linux – step 5

        2. Run Foremost to recover the deleted files in Linux:

        sudo foremost -v -q -t png -i /dev/sda1 -o ~/recovered_files
        recover deleted file in linux using foremost
        • Replace png with the file type you’re recovering (e.g., jpg, pdf).
        • /dev/sda1 is the drive where the file was stored.
        • ~/recovered_files is the folder where recovered files will be saved.

        Note: Don’t recover files on the same drive where they were deleted, as it may overwrite data.

        Recovering deleted files in Linux is possible if you act quickly before the data is overwritten. By unmounting the drive, using the lsof command to retrieve files still in use, or utilizing forensic recovery tools like Foremost, you can increase your chances of restoring lost data. Each method is useful depending on the scenario—lsof works for files still held by running processes, while Foremost is effective for deep recovery of deleted files from storage devices. To prevent data loss, consider regular backups and using file recovery tools as soon as you realize a file is deleted.

        Related Guides