# Remove file without asking

How can I remove file without asking user if he agrees to delete file? I am writing shell script and use rm function, but it asks "remove regular file?" and I really don't need this. Thank you.

-

## migrated from stackoverflow.comOct 12 '11 at 20:18

This question came from our site for professional and enthusiast programmers.

rm -f, yes | rm and so on, but this belongs to SU. –  khachik Oct 12 '11 at 19:30
rm doesn't show a "remove regular file?" prompt by default. You must have it aliased to rm -i, or defined as a function. I'm surprised that the alias is visible inside your script. Are you executing the script (./foo.sh) or sourcing it (. foo.sh or source foo.sh)? –  Keith Thompson Oct 12 '11 at 19:56

You might have rm aliased to rm -i so try this:

/bin/rm -f file.log


To see your aliases you can run alias.

-
Alternatively, use command rm ... or \rm ... to skip the alias/function –  glenn jackman Oct 12 '11 at 20:26
It's been argued that having rm aliased to rm -i is a bad idea. The rm command, by default, silently removes the named file. By aliasing it to rm -i, you can get into the habit of not checking carefully before pressing Enter, depending on the interactive prompt to save you. Then you type rm some-important-file in an environment without the alias. –  Keith Thompson Oct 12 '11 at 21:25
@Keith That is very true, i only personally alias rm to rm -v –  chown Oct 12 '11 at 21:33

The force flag removes all prompts;

rm -f

-

Within a shell script, you would want to use rm -f <filename> but you also have the option of getting rid of the implicit -i option for your environment by entering unalias rm in your shell (or profile).

-

May the force be with you - rm -f

-

the yes program repeatedly replies yes to any prompts. so you can pipe it into the interactive rm program to get the desired effect too.

yes | rm <filename>


conversely, if you want to not do something interactive, you can do

yes n | <something interactive>


and that will repeat 'n' on the input stream (effectively answering no to questions)

-

If you have the required permissions to delete the file and you don't want to be prompted, do the following (-f = force):

rm -f file


If you don't have permissions to the file, you will need to use:

sudo rm -f file

-
The "remove regular file?" prompt implies that it's not a permissions problem. –  Keith Thompson Oct 12 '11 at 21:23