Everyone is probably familiar with using a wild card with the rm command to delete a large number of files in one go. For example, this command would remove all files that start with 'test' or end with '.c':

 

rm test.* *.c

 

It's very useful, but if you have a lot of files with dissimilar names, it can still be a bit tedious. In this Tip of the Week, I'll show you how to use an operator to specify which files not to remove.

 

Using the ! operator, I can make rm remove everything except what matches my command line arguments. The following command removes all files except those that start with 'test' or end with '.c':

 

rm !(test.*|*.c)

 

Give it a try!