[BASH] contare numero di file contenuti in una directory

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
kiroken_
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2008
Iscrizione: mercoledì 2 maggio 2007, 17:38

[BASH] contare numero di file contenuti in una directory

Messaggio da kiroken_ » mercoledì 15 aprile 2009, 14:59

Ciao come da topic esiste un comando per ottenere il numero di file contenuti in una directory? con google sto trovando di tutto tranne un comando che svolga questa semplice operazione.

grazie

edit: il comando deve essere ricorsivo e performante ovvero un programma che esegua questa operazione direttamente senza soluzioni del tipo

Codice: Seleziona tutto

find . | wc -l
Ultima modifica di kiroken_ il mercoledì 15 aprile 2009, 15:33, modificato 1 volta in totale.
http://petition.stopsoftwarepatents.eu/
d95555c36aeeee715c0a34ce1e4dd713

Avatar utente
Zenone
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2712
Iscrizione: martedì 19 settembre 2006, 12:10
Località: Siena
Contatti:

Re: [BASH] contare numero di file contenuti in una directory

Messaggio da Zenone » mercoledì 15 aprile 2009, 15:18

linuxfeed.org  |   -     WeFeedYou Network
Blog Personale
No alla legge 133.

Avatar utente
Elrond
Rampante Reduce
Rampante Reduce
Messaggi: 5018
Iscrizione: sabato 22 novembre 2008, 12:32
Contatti:

Re: [BASH] contare numero di file contenuti in una directory

Messaggio da Elrond » mercoledì 15 aprile 2009, 15:22

Codice: Seleziona tutto

ls | wc -l
dovrebbe funzionare abbastanza bene
Il mio blog su Ubuntu | Script per vedere canali RAI in diretta senza browser (discussione)
Quando devi inserire nei messaggi del codice usa il tag code, è il pulsante # sopra le emoticon: [code]inserisci il testo qui[/code]

Avatar utente
kiroken_
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2008
Iscrizione: mercoledì 2 maggio 2007, 17:38

Re: [BASH] contare numero di file contenuti in una directory

Messaggio da kiroken_ » mercoledì 15 aprile 2009, 15:26

grazie per la risposta questo dimostra che non so fare bene le ricerche ho trovato molti risultati in meno con la mia.
Però devo aver formulato male la domanda mi chiedevo se esisteva un comando che eseguiva direttamente questo compito in modo da risultare più "performante" rispetto a soluzioni come

Codice: Seleziona tutto

find . | wc -l
o simili.
Io cerco un qualcosa del tipo

Codice: Seleziona tutto

howmanyfile directory
(il comando deve essere ricorsivo)
http://petition.stopsoftwarepatents.eu/
d95555c36aeeee715c0a34ce1e4dd713

Avatar utente
Zenone
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2712
Iscrizione: martedì 19 settembre 2006, 12:10
Località: Siena
Contatti:

Re: [BASH] contare numero di file contenuti in una directory

Messaggio da Zenone » mercoledì 15 aprile 2009, 15:31

Quale è il problema di usare due comandi?
Questa è una caratteristica del bash...programmi che fanno piccole cose
linuxfeed.org  |   -     WeFeedYou Network
Blog Personale
No alla legge 133.

Avatar utente
Elrond
Rampante Reduce
Rampante Reduce
Messaggi: 5018
Iscrizione: sabato 22 novembre 2008, 12:32
Contatti:

Re: [BASH] contare numero di file contenuti in una directory

Messaggio da Elrond » mercoledì 15 aprile 2009, 15:33

Se proprio non vuoi usare due comandi puoi fare l'alias

Codice: Seleziona tutto

alias howmanyfile='find "$@" | wc -l'
Il mio blog su Ubuntu | Script per vedere canali RAI in diretta senza browser (discussione)
Quando devi inserire nei messaggi del codice usa il tag code, è il pulsante # sopra le emoticon: [code]inserisci il testo qui[/code]

Avatar utente
kiroken_
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2008
Iscrizione: mercoledì 2 maggio 2007, 17:38

Re: [BASH] contare numero di file contenuti in una directory

Messaggio da kiroken_ » mercoledì 15 aprile 2009, 15:38

sto tentando di creare uno script per il backup in modo da renderlo il più performante possibile (nei limiti di bash).
Un programma che esegue direttamente questa funzione sarebbe stato molto più veloce rispetto ad usare find che stampa su una pipeline tutti i file che verranno letti da un secondo programma.
Non cambierà molto perchè il grosso del tempo è dovuto al tempo di copia effettiva dei file diciamo che ormai mi è venuta la curiosità :p
http://petition.stopsoftwarepatents.eu/
d95555c36aeeee715c0a34ce1e4dd713

Avatar utente
Elrond
Rampante Reduce
Rampante Reduce
Messaggi: 5018
Iscrizione: sabato 22 novembre 2008, 12:32
Contatti:

Re: [BASH] contare numero di file contenuti in una directory

Messaggio da Elrond » mercoledì 15 aprile 2009, 15:40

Fai però attenzione (come segnalato anche in qualcuno dei risultati della ricerca) che find può mostra come risultati anche . e (forse) ..
Il mio blog su Ubuntu | Script per vedere canali RAI in diretta senza browser (discussione)
Quando devi inserire nei messaggi del codice usa il tag code, è il pulsante # sopra le emoticon: [code]inserisci il testo qui[/code]

sean_von_drake
Prode Principiante
Messaggi: 32
Iscrizione: lunedì 13 ottobre 2008, 12:38
Località: Bologna

Re: [BASH] contare numero di file contenuti in una directory

Messaggio da sean_von_drake » mercoledì 18 settembre 2013, 10:54

limiti di Bash? quali limiti? :D Bash è una Ferrari!!! :)

scherzi a parte, il comando:
find . | wc -l
funziona anche in caso nella cartella siano contenuti files con il nome contenente spazi???
"sono un servitore del Fuoco Segreto, e reggo la Fiamma di Anor"

Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8151
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [BASH] contare numero di file contenuti in una directory

Messaggio da crap0101 » mercoledì 18 settembre 2013, 15:17

sì, a meno che non siano newline. In quel caso puoi usare -print0, però non puoi più usare wc perchè non mi pare sia possibile cambiare delimitatore. Puoi usare una soluzione alternativa tipo:

Codice: Seleziona tutto

crap0101@orange:/tmp/foo$ find -print|wc -l
20
crap0101@orange:/tmp/foo$ find -print0| awk -v RS='\0' 'END {print FNR}'
20
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs

Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4135
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu/Lubuntu 18.04.1 64bit

Re: [BASH] contare numero di file contenuti in una directory

Messaggio da vaeVictis » mercoledì 18 settembre 2013, 15:32

Elrond [url=http://forum.ubuntu-it.org/viewtopic.php?p=2002641#p2002641][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Fai però attenzione (come segnalato anche in qualcuno dei risultati della ricerca) che find può mostra come risultati anche . e (forse) ..
Solo .
E si può rimuovere usando i parametri min/maxdepth :)

edit:
Pardon, non avevo notato che questa discussione riesumata risale addirittura a qualche anno fa.
Ultima modifica di vaeVictis il mercoledì 18 settembre 2013, 15:41, modificato 1 volta in totale.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once, but I fear the man who has practiced one kick 10000 times.»

Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8151
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [BASH] contare numero di file contenuti in una directory

Messaggio da crap0101 » mercoledì 18 settembre 2013, 15:36

neppure io :-D
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs

Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 1 ospite