Velvet Star Monitor

Standout celebrity highlights with iconic style.

updates

Remove file without asking

Writer Andrew Henderson

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

2

14 Answers

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

/bin/rm -f file.log

To see your aliases you can run alias.

5

The force flag removes all prompts;

rm -f {file}

1

May the force be with you - rm -f

2

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)

1
\rm file

Backslash \ bypasses aliases.

0

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).

1

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
1

Apart of using -f parameter, alternatively you can use find command instead, e.g.

find -name file.log -delete

My favourite way to do this is simply use command command in bash, just the same way you use sudo. This will run your command without aliases, just like running it by /bin/rm (probably rm is aliased as rm -i).

Example:

command rm -f /tmp/file.txt

Currently I am working at a system, where the bash shell recieved the definition of the rm command as a function in one of the global configuration files:

 rm () { /bin/rm -i ${1+"$@"}; }

Hence, none of the above answers regarding aliases did work. To counter the annoying behaviour I unset the rm function in my .bashrc file

 unset -f rm

I had a similar problem then the opener. However I did not found any answer that mentioned the possibility that rm is hidden by a shell function. So I added the answer here in the hope it would be of help for somebody facing the same type of problem.

Typing /bin/rm or rm -f all the time is inconvenient, and may have bad consequences (in the case of rm -f).

3

If your rm is aliased to rm -i, then use unalias rm;

Do not use rm -f directly unless you really want to remove a lot of write-protected files. There must be a very good reason to use -f.

However, if you have a lot of write-protected files, you might prefer to rsync -r --delete empty/ removed_dir/ for a faster speed.

0
rm -Rf <folder-to-be-deleted>

-R: Recursive f: force, no prompt

1

If there is a folder containing everything you want to delete, this can help cd directory find . -print |xargs rm -r

1

Another thing I noticed is that if I remove multiple files/dirs through in one go like the following then the rm command asks for confirmation.

sudo rm -rf dir1 dir2 

If I remove them them one by one then it doesn't ask for confirmation.

sudo rm -rf dir1
sudo rm -rf dir2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy