coding >> Linux pipe find with rm (1,838 views)

find /path/to/dir -name name_of_file_to_match | xargs /bin/rm

I use often the above command to clean a directory from all the back up files created by emacs, so for example if I am developing a site at: /var/www/a-site/ then at the end of the day or at the beginning of a new one I clean up the directory as follow:
find /var/www/a-site -name '*~' | xargs rm
Be careful with the above command, specially if you run it as root and you get wrong the regex you could delete things you didn’t mean to !

Leave a Comment or Trackback from your own site.

4 Responses to “Linux pipe find with rm”

  1. Florian Marcovici says:

    you can achieve the same result like this:
    find . -name '*~' -exec rm {} \;

  2. Florian Marcovici says:

    damn, they modified my ‘ but you get the point :)

  3. Thanks Florian,
    you are absolutely right, rm will be executed for each file discovered by find.
    The curly brackets {} are replaced with the current discovered file.
    The semicolon ; signals the end of the arguments passed to rm
    The backslash \ escapes the semicolon ;

Leave a Reply