skip to content

The rm command

The rm command is used to delete files.

  • rm -i will ask before deleting each file. Some people will have rm aliased to do this automatically (type "alias" to check). Consider using rm -I instead, which will only ask once and only if you are trying to delete three or more files.
  • rm -r will recursively delete a directory and all its contents (normally rm will not delete directories, while rmdir will only delete empty directories).
  • rm -f will forcibly delete files without asking; this is mostly useful if you have rm aliased to ``rm -i'' but want to delete lots of files without confirming each one.

Removing troublesome files

Files with spaces or odd characters
Put single quotes round the filename to hide the space from the shell, you could escape the space with \ if you prefer. Or just start typing the name and hit Tab and the shell will do this for you.
For a filename which begins with a dash (-) you also need to precede the name with ./ to prevent it being treated specially.
No such file or directory
If this happens when trying to delete a file with a long name, it was probably displayed in truncated format. Press Tab to ask the shell to auto-complete the filename for you.
Device or resource busy
You can't delete a file which is in use. Reboot the computer and try again. Or try to track down the processes which are using the file.
/usr/sbin/lsof filename
ps auxwww | grep process_id
# If the processes belong to you and you don't mind killing them
kill process_id
# Be more emphatic
kill -9 process_id