← Back to team overview

sslug-teknik team mailing list archive

Re: Mange filer.

 

On Tue, May 25, 1999 at 08:43:35AM +0200, Carsten Svaneborg wrote:
> Hej.
> 
> Jeg har på linux og HP'ere haft problemer med f.x. mv og tar når
> der er tale om mange filer (~30000 filer). Nogen der har forslag?
> 
> Det er trælst at skulle lave mv a* somewhereelse, mv b* somewhereelse
> osv. når det tager ganske langtid at lave hver af disse.
> 

Sådan som jeg forstår din beskrivelse af problemet ligger det
i din shell, som ikke kan håndtere kommandolinier over on vis
længde / et vist antal argumenter.

Det er et problem jeg selv er stødt ind i nogen gange, det plejer
(på både Linux og AIX) at lykkdes ved at lade xargs (et suverænt
værktøj) samle argumenterne, i stedet for shellen.  Her er en
mulig måde at gøre det på:

  (find . -type f ; echo somewhereelse) | xargs mv

Det xargs gør er at læse data fra stdin, og så putte det i enden
af den kommando linie du angiver.

En anden vej du kunne prøve var at bruge find mad en -exec, man det
er ikke særlig effektivt, da rm bliver kørt for hver fil:

  find . -type f -exec 'mv {} somewhereelse' \;

Mvh,
Sune Kirkeby



Follow ups

References