erlug
[Top] [All Lists]

Re: [Erlug] /var quasi saturo

To: erlug@xxxxxxxxxxxxxx
Subject: Re: [Erlug] /var quasi saturo
From: Davide Brini <db72@xxxxxxxxxxxx>
Date: Sun, 2 Oct 2016 17:03:48 +0200
On Sun, 2 Oct 2016 02:05:22 +0200, Massimiliano Masserelli
<negro@xxxxxxxxxx> wrote:

> Il 01/10/2016 20:47, Fernando Santagata ha scritto:
> > find dir -name qualcosa -print0|xargs -0 comando
> >
> > A questo punto i nomi dei file possono contenere qualsiasi metacarattere
> > della shell, ma tanto vengono passati come flusso binario tra i due
> > processi.  
> 
> Corretto ma in questo caso torni nella situazione "un processo rm 
> eseguito per ogni file da cancellare" che è marginalmente meglio di "una 
> shell che lancia rm per ogni file da cancellare" ma non poi tantissimo. 

Se el problema è "non voglio lanciare un processo per ogni file" (che
effettivamente è "brutto", almeno per me) non è necessario usare xargs con
relativi trucchi (-0 etc) per proteggersi da nomi di file strani; si può
ottenere lo stesso effetto con

find .... -exec comando {} +

(notare il + invece del ; alla fine)

In questo modo si esegue "comando" poche volte (al limite una sola) con il
massimo numero di argomenti per ogni invocazione. Ovviamente, xargs da più
controllo con altre opzioni, pero molto spesso find -exec ... + è
sufficiente.

<Prev in Thread] Current Thread [Next in Thread>