problema con pulizia cartella home

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
matteovid
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 368
Iscrizione: mercoledì 9 dicembre 2009, 9:09
Desktop: Openbox, XFCE, XMonad
Distribuzione: GNU/Linux Arch - openSUSE Leap
Sesso: Maschile
Località: Parma

Re: problema con pulizia cartella home

Messaggio da matteovid »

Ciao Vincenzo

come sempre i tuoi programmi sono di una esemplare leggibilità, complimenti :)

poi questo argomento è importante, non mi era mai capitato che la rm desse questi errori... quante importanti argomenti vi sono in questo forum

Matteo
miglia da percorrere, prima di dormire
Avatar utente
Vincenzo1968
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 450
Iscrizione: lunedì 14 gennaio 2013, 14:21
Desktop: Unity
Distribuzione: Ubuntu 18.04.3 LTS x86_64
Località: Villabate(PA)
Contatti:

Re: problema con pulizia cartella home

Messaggio da Vincenzo1968 »

Ciao Matteo, grazie ;)

@UbuNuovo: Ho preso i tempi su diecimila file della dimensione di 2Kb:

Codice: Seleziona tutto

[vincenzo]$ time xargs -n 100 rm -f < <(ls -1 | grep ^rdr2_layer0.rpf)

real	0m0.381s
user	0m0.080s
sys	0m0.020s


------------------------------------------------------------------------

[vincenzo]$ time find . -name 'rdr2_layer0.rpf\.[0-9]*' -type f -delete

real	0m0.135s
user	0m0.008s
sys	0m0.124s

------------------------------------------------------------------------

[vincenzo]$ time ./remfiles dir_piena rdr2_layer0.rpf

Rimossi 10000 file.

Tempo impiegato -> 0.09000 secondi


real	0m0.097s
user	0m0.000s
sys	0m0.096s
Come vedi, anche in questo caso, i tempi con find sono solo di poco superiori a quelli della versione C.

Per prendere i tempi con time, nel programma C, devi commentare, nel main, la parte che chiede la conferma:

Codice: Seleziona tutto

...
	/*
	if ( recursive )
		printf("\nVerranno rimossi tutti i file con prefisso '%s' dalla directory '%s' e dalle sue sottodirectory\n", argv[2], argv[1]);
	else
		printf("\nVerranno rimossi tutti i file con prefisso '%s' dalla directory '%s'\n", argv[2], argv[1]);
	printf("procedere(S/N)? ");
	
	c = fgetc(stdin);
	
	if ( c != 'S' && c != 's' )
		return 0;
	*/
...
È ormai difficile incontrare un cretino che non sia intelligente e un intelligente che non sia un cretino. [...] Oh i bei cretini di una volta! Genuini, integrali. Come il pane di casa. Come l'olio e il vino dei contadini. (da "Nero su nero" di Leonardo Sciascia)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti