Wednesday, March 23, 2011

Change command to one that does not fork and use up resources

Hello all,

I have the following command which deletes files that are one day old and that are of mp3 file type.

    find /home/get/public_html/audio -daystart -maxdepth 1 -mtime +1 
    -type f -name "*.mp3" |xargs rm -f

The problem with this is when i run it, it sometimes says "fork": resource xargs not available.

Does this mean, this command first finds the file and then starts many process to delete each file?

Can someone help me re-write this, so that when a file is found, it is immediatly deleted rather than being piped to xargs?

Thanks all

EDIT:

find: invalid predicate `-delete' - I can't use that!

From stackoverflow
  • Check your man page for find, it might support -delete, making it as simple as

    find /home/get/public_html/audio -daystart -maxdepth 1 \
       -mtime +1 -type f -name "*.mp3" -delete
    
  • Perhaps you can use the "-delete" flag to find, instead of piping to xargs?

  • what about trying:

     find /home/get/public_html/audio -daystart -maxdepth 1 -mtime +1 
        -type f -name "*.mp3" -exec rm -f {} \;

0 comments:

Post a Comment