From: sanjim jaike (san_jais@eudoramail.com)
Date: Sat May 04 2002 - 22:09:33 EDT
Hi ,
Thanks to all those who replied.Special thanks to Dave Mitchell who provided the solution first.The solution by Jeff Woolsey also works,thanks for reply.
Sanjeev
Original Problem:
> Hi,
> I am trying to delete files with strange names like quotes ,spaces or backslashes.
>
> find /dir -name '*.inactive' -print | xargs rm
>
> This command fails when xargs encounters a control character or a quote.
Solution from Dave Mitchell:
If you have Perl installed, the following should do the trick (as long as
the filename doesnt have a \n it it).
find . -name '*.inactive' -print | perl -ne 'chomp; unlink'
or if you want error reportting too:
find . -name '*.inactive' -print | \
perl -ne 'chomp; unlink or warn "Failed to delete $_: $!\n"'
Solution from Jeff Woolsey:
That's a problem with xargs. The interface does leave a little to be desired,
though it's better than the shell ( rm *.inactive with special characters).
Try find2perl with the same arguments (not the pipe, though), and edit the
resulting perl code to do what you want.
Or use somethig like this:
#! /usr/local/bin/perl
### xargs rm without the globbing.
#
# Hmm. It's not this simple.
@_ = <>;
chop(@_);
unlink @_;
exit 0;
Join 18 million Eudora users by signing up for a free Eudora Web-Mail account at http://www.eudoramail.com
_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers
This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 23:24:17 EDT