How to delete multiple files at once in Bash on Linux?

bash, linux, rm

Solution

Bash supports all sorts of wildcards and expansions.

Your exact case would be handled by brace expansion, like so:

$ rm -rf abc.log.2012-03-{14,27,28}

The above would expand to a single command with all three arguments, and be equivalent to typing:

$ rm -rf abc.log.2012-03-14 abc.log.2012-03-27 abc.log.2012-03-28

It's important to note that this expansion is done by the shell, before `rm` is even loaded.

Problem

I have this list of files on a Linux server: ``` abc.log.2012-03-14 abc.log.2012-03-27 abc.log.2012-03-28 abc.log.2012-03-29 abc.log.2012-03-30 abc.log.2012-04-02 abc.log.2012-04-04 abc.log.2012-04-05 abc.log.2012-04-09 abc.log.2012-04-10 ``` I've been deleting selected log files one by one, using the command `rm -rf` see below: ``` rm -rf abc.log.2012-03-14 rm -rf abc.log.2012-03-27 rm -rf abc.log.2012-03-28 ``` Is there another way, so that I can delete the selected files at once?

Original source