← Back to team overview

sslug-teknik team mailing list archive

Re: Slet MP3

 

Mads Bondo Dydensborg <madsdyd@xxxxxxxxxxxx> writes:

> On 2 Jun 2000, Henrik Christian Grove wrote:
> 
> > Sune Rastad Bahn <bahn@xxxxxxxxxxxx> writes:

> > >  find /home -iname "*.mp3" -exec rm -f \{ \} \;
> > > 
> > > vil formentlig virke endnu bedre :-)
> > 
> > Ja, den vil f.eks. fjerne filerne, men 
> >   find /home -iname \*.mp3 | xargs rm -f 
> > vil gøre det samme, bare lidt hurtigere (der bliver startet væsentligt
> > færre rm-processer - og så er den nemmere at læse).
> 
> Hvordan håndterer xargs egentlig for lange kommando linier?

Jeg har ikke studeret kildeteksten, men princippet er at den samler argumenter
indtil kommandolinien består af (lige knap) 20k (eller til der ikke er flere)
tegn, før den starter en proces. Hvis der så er flere argumenter startes flere
processer (med kommandolinier op til 20k).

> Hvordan klarer ovenstående lige filer med mellemrum i?

Dårligt. Efter et kort kig på `man find` vil jeg tro følgende klarer
det, men så er det ikke lettere læseligt end din løsning med -exec.
  find /home -iname \*.mp3 -printf "\"%p\"\n" | xargs rm -f 
(jeg tør ikke udelukke at der findes en kønnere/lettere løsning, men jeg synes
det ser ud som om find mangler en "quote hver fil du finder"-option)
 
> Iøvrigt skulle det være \{\} - ivhertfald på mit system.

Sikkert, jeg bryder mig ikke om `find -exec`, bl.a. p.g.a. syntaksen, så det
kan du sagtens bilde mig ind. Til gengæld staves det her på mit system
"ihvertfald".

Henrik (der hader mellemrum i filnavne)

-- 
Henrik Grove --- grove@xxxxxxx --- http://www.diku.dk/students/grove/
----------------------------------------------------------------------
Registreret Linux bruger nummer 61622
Registrer dig selv på http://counter.li.org/


Follow ups

References