Skip to main content

Command Palette

Search for a command to run...

How to Delete Files in Linux Terminal

Published
6 min readView as Markdown

Deleting files in the Linux terminal might seem tricky if you’re new to the command line. But once you get the hang of it, you’ll find it’s a quick and powerful way to manage your files. Whether you want to remove a single file or clean up entire directories, the Linux terminal gives you full control.

In this article, I’ll walk you through the essential commands and options to delete files safely and efficiently. You’ll also learn how to handle common scenarios like deleting multiple files, using wildcards, and avoiding mistakes. By the end, you’ll feel confident managing your files directly from the terminal.

Basic Command to Delete Files: rm

The most common command to delete files in Linux is rm, which stands for "remove." It’s straightforward but powerful.

  • To delete a single file, type:
    rm filename
    
  • Replace filename with the actual name of the file you want to delete.
  • If the file is in a different directory, include the path:
    rm /path/to/filename
    

The rm command deletes files permanently without moving them to a trash or recycle bin. So, be careful when using it.

Important Options with rm

  • -i: Prompts you before deleting each file. Useful for safety.
  • -f: Forces deletion without any prompts or warnings.
  • -v: Shows detailed output of what’s being deleted.

Example with options:

rm -iv file1.txt

This command will ask for confirmation before deleting file1.txt and show what it’s doing.

Deleting Multiple Files at Once

You can delete several files in one command by listing them or using wildcards.

  • List files separated by spaces:
    rm file1.txt file2.txt file3.txt
    
  • Use wildcards to delete files matching a pattern:
    • * matches any characters.
    • ? matches a single character.

For example:

rm *.log

This deletes all files ending with .log in the current directory.

Be cautious with wildcards because they can delete more files than you expect.

Removing Directories and Their Contents

To delete directories, you use the rm command with the -r (recursive) option.

  • Delete an empty directory:
    rmdir directory_name
    
  • Delete a directory and all its contents:
    rm -r directory_name
    

The -r option tells rm to remove the directory and everything inside it, including subdirectories and files.

You can combine options for safety:

rm -ri directory_name

This will ask for confirmation before deleting each file inside the directory.

Using find Command to Delete Files

Sometimes, you want to delete files based on specific criteria like age, size, or name pattern. The find command is perfect for this.

Example: Delete all .tmp files older than 7 days:

find /path/to/directory -name "*.tmp" -type f -mtime +7 -exec rm {} \;

Explanation:

  • /path/to/directory: Where to search.
  • -name "*.tmp": Files ending with .tmp.
  • -type f: Only files, not directories.
  • -mtime +7: Modified more than 7 days ago.
  • -exec rm {} \;: Delete each found file.

This method is powerful but requires careful use to avoid deleting important files.

Safety Tips When Deleting Files in Linux Terminal

Deleting files from the terminal is permanent. Here are some tips to avoid mistakes:

  • Always double-check the file names and paths.
  • Use the -i option with rm to get confirmation prompts.
  • Test wildcards with ls before deleting:
    ls *.log
    
  • Avoid using rm -rf / or similar commands that can wipe your system.
  • Consider backing up important files before deletion.

Recovering Deleted Files in Linux

Unlike graphical interfaces, the terminal doesn’t send files to a trash bin. Once deleted with rm, files are gone unless you have backups or recovery tools.

  • Use backup solutions like rsync or cloud storage.
  • Some tools like extundelete or testdisk can recover deleted files from ext3/ext4 filesystems, but success isn’t guaranteed.
  • Regular backups are the best way to protect your data.

Deleting Files with Special Characters or Spaces

Files with spaces or special characters in their names need special handling.

  • Use quotes around the filename:
    rm "file name with spaces.txt"
    
  • Or escape spaces with a backslash:
    rm file\ name\ with\ spaces.txt
    

This ensures the terminal interprets the filename correctly.

Using trash-cli for Safer Deletion

If you want a safer way to delete files from the terminal, consider installing trash-cli. It moves files to the trash instead of deleting them permanently.

  • Install with your package manager:
    sudo apt install trash-cli
    
  • Delete a file:
    trash-put filename
    
  • Restore or empty trash using other trash-cli commands.

This approach mimics the graphical trash bin and reduces the risk of accidental permanent deletion.

Summary Table of Common File Deletion Commands

CommandDescriptionExample
rm filenameDelete a single filerm file.txt
rm -i filenameDelete with confirmation promptrm -i file.txt
rm file1 file2Delete multiple filesrm file1.txt file2.txt
rm *.logDelete files matching patternrm *.log
rm -r directoryDelete directory and contentsrm -r myfolder
rmdir directoryDelete empty directoryrmdir emptyfolder
find /path -name "*.tmp" -exec rm {} \;Delete files found by criteriaDelete .tmp files
trash-put filenameMove file to trash (requires trash-cli)trash-put file.txt

Conclusion

Deleting files in the Linux terminal is a skill that gives you great control over your system. By mastering commands like rm, rmdir, and find, you can manage files quickly and efficiently. Just remember to use options like -i for safety and double-check your commands before running them.

If you want to avoid permanent deletion, tools like trash-cli offer a safer alternative by moving files to a trash bin. Always back up important data and be cautious with wildcards and recursive deletes. With these tips, you’ll confidently handle file deletion in Linux without worry.

FAQs

How do I delete a file that requires root permissions?

Use sudo before the command:

sudo rm filename

This runs the command with administrative rights.

Can I recover files deleted with rm?

Not easily. rm deletes files permanently. Recovery tools exist but aren’t guaranteed. Regular backups are best.

How do I delete all files in a directory but keep the directory?

Use:

rm /path/to/directory/*

This deletes files inside but not the directory itself.

What does rm -rf do?

It forcefully deletes directories and their contents recursively without prompts. Use with extreme caution.

How can I delete files with spaces in their names?

Use quotes or escape spaces:

rm "file name.txt"
rm file\ name.txt

This ensures the shell reads the filename correctly.

More from this blog

L

LinuxBloke | Linux Tips, Tricks & Troubleshooting

672 posts