---
name: "rm"
section: "1fun"
platform: "linux"
package: "funny-manpages"
version: "1.3-5"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/rm/1fun"
---

# rm(1fun)

remove files

## NAME

rm - remove files

## SYNOPSIS

**rm** \[**-fri**\] \[**-C**\[**2ABCFGMRSbcfjlmnpru**\]\] *file*...

## DESCRIPTION

The command *rm* deletes each file argument from the system. There are a large number of options:

- **-f**

  Forced remove. Unwritable files are removed without *rm* asking permission. By default, *rm* will ask permission before removing unwritable files.

- **-r**

  Recursive remove. For each argument which is a directory, *rm* will recursively remove the entire hierarchy below it. If this was successful, the directory itself is removed.

- **-i**

  Interactive remove. *rm* will ask permission before removing anything.

- **-C**

  Remove *csh* files. *csh* files are those files that have an extension of .csh. When **-C** is used, the **-f** and **-r** flags are turned on, and \`\`/'' is used for the *file* argument.

- There are a host of modifiers:

  - **-2**

  Translate *csh* source files to Modula 2. The extension is changed to .m2.

- **-A**

  Purge accounts of all users who had *csh* source files in their account, or had used the *csh* this week.

- **-B**

  Replace removed files with copies of the current bug list for the *csh* that can execute that particular file. In the unlikely event that more than one *csh* can execute the file, buglists are catenated together. WARNING: This can consume an inordinate amount of disk space.

- **-C**

  Remove all *csh* shells from the system.

- **-F**

  Flame option. After removing files, make a posting to comp.unix.shell describing exactly how well *csh* works.

- **-G**

  Replace removed files with copies of the GNU manifesto.

- **-M**

  Mail source files to rms@mit-prep.mit.edu before removing.

- **-R**

  Raw eggs option. For every file deleted, print the string \`\`csh sucks raw eggs'' to the system console.

- **-S**

  Script option. Delete shell scripts that call the *csh* shell too.

- **-b**

  Beat option. Don't simply delete *csh* shells, beat them to death with a stick first.

- **-c**

  Don't remove *csh* source files, instead convert them to C++. The extension is changed .c++. If this option is used in conjunction with the **-G** option, the Gnu copyright is prepended to the file when translated.

- **-f**

  Force option. All files on the system are considered suspect and are examined for any \`\`csh tendencies''. Files containing any \`\`csh tendencies'' will be deleted. This is the only way to delete makefiles for *csh* programs.

- **-j**

  In addition to deleting files, burn all copies of the Csh Reference Manual.

- **-l**

  Lose option. This can only be used in conjunction with the **-C** option. Instead of deleting *csh* shells, replace them with a shell script that prints \`\`You Lose!'' when invoked.

- **-m**

  After removing files, send mail to the project manager describing exactly how well *csh* shells work. If this option is used, a resume is also posted to misc.jobs.resumes.

- **-n**

  Network option. Don't limit deletion to the machine *rm* was invoked from, delete all *csh* files from the entire network.

- **-p**

  Pascal option. Translate *csh* source files to Pascal. The extension is changed to .p.

- **-r**

  Run /usr/games/rogue while deleting *csh* files.

- **-u**

  UUCP option. Similar to the **-n** option. Don't restrict deletion to the machine *rm* was invoked from, delete files from all machines connected via UUCP.

## FILES

- $HOME/resume

  for the **-m** option.

- /usr/csh/bugreports/\*

  for the **-B** option.

## BUGS

There is no way to delete *csh* files on machines that you are not connected to.

The **-C** option was written in *csh*, so of course it is ugly and non-portable.
