sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #86907
Re: Slette filer baseret på størrelse
-
To:
sslug-teknik@xxxxxxxx
-
From:
Peter Makholm <peter@xxxxxxxxxxx>
-
Date:
Fri, 20 Jan 2006 19:08:14 +0100
-
Cancel-lock:
sha1:qPqLS/NfepiUgKw7+FYoBt8fyUU=
-
Delivered-to:
mailing list sslug-teknik@xxxxxxxx
-
In-reply-to:
<dqr7ie$tq8$1@www.sslug.dk> (Egon Andersen's message of "Fri, 20 Jan 2006 18:44:45 +0100")
-
Mailing-list:
contact sslug-teknik-help@xxxxxxxx; run by ezmlm
-
Newsgroups:
sslug.teknik
-
Organization:
hacking.dk - Doing fun stuff with open source
-
User-agent:
Gnus/5.09002 (Oort Gnus v0.20) XEmacs/21.4 (Social Property, linux)
-
Xyzzy:
Nothing happens!
Egon Andersen <ean@xxxxxxxxx> writes:
> Men jeg kan ikke blot pipe dette over i 'rm', da denne ikke kan læse
> fra stdin
> Dvs. "find -size -200 | rm" virker altså ikke.
Du har allerede fået en løsning der virker nå dine data kommer fra
find, men ellers kan du se på programmet xargs. Den kan udføre en
kommando med argumenter den læser fra stdin.
For eksempel:
find -size -200 | xargs rm
Vil kalde rm på alle filerne som find finder. Fordelen ved xargs er at
den kan kalde rm en gang med flere filer som argument. Lige i dette
tilfælde er forskellen ikke så stor.
Har du filnavne men mellemrumstegn i er ovenstående ikke så
smart. xargs vil nemling splitte stdin på blanktegn, dvs. både
mellemrum og ny-linjs. Så kan man få find til at adskille filnavne med
null-tegn istedet for linjeskift og få xargs til at splitte på dette:
find -size -200 -print0 | xargs -0 rm
Jeg bruger stort set altid xargs istedet for -exec med find. Primært
fordi det ligger i fingrene, men det er også et mere generelt
værktøj. Jeg er også tit ude for at argumenterne kommer fra andre
steder end find og så er xargs løsningen.
--
Peter Makholm | One thing you do is prevent good software from
peter@xxxxxxxxxxx | being written. Who can afford to do professional
http://hacking.dk | work for nothing?
| -- Bill Gates
Follow ups
References