Hoe kom ik achter het aantal files in een dir?

Pagina: 1
Acties:
  • 418 views sinds 30-01-2008
  • Reageer

  • Blubber
  • Registratie: Mei 2000
  • Niet online
Ik moet dus weten hoeveel files er in een bepaald dir en al zijn subdirs zitten, ik gebruik linux. Hoe krijg ik dat voor elkaar?

  • hammerhead
  • Registratie: April 2000
  • Laatst online: 20:01
Op zaterdag 05 januari 2002 14:53 schreef Blubber het volgende:
Ik moet dus weten hoeveel files er in een bepaald dir en al zijn subdirs zitten, ik gebruik linux. Hoe krijg ik dat voor elkaar?
Ga naar de directory en tik in:
find * | wc -l

find * levert je alle bestanden op (inclusief subdirectories) en de uitvoer hiervan stuur je door naar wc (=wordcount). Met behulp van de optie -l geef je aan dat je het aantal regels wilt weten.

Aviation is proof that given the will, we have the capacity to achieve the impossible.
--Eddie Rickenbacker


  • Blubber
  • Registratie: Mei 2000
  • Niet online
Op zaterdag 05 januari 2002 14:56 schreef hammerhead het volgende:

[..]

Ga naar de directory en tik in:
find * | wc -l

find * levert je alle bestanden op (inclusief subdirectories) en de uitvoer hiervan stuur je door naar wc (=wordcount). Met behulp van de optie -l geef je aan dat je het aantal regels wilt weten.
Hartelijk dank, dat was precies wat ik nodig had :)

  • Newjersey
  • Registratie: November 2000
  • Laatst online: 10-08 23:25
je kan ook ls | wc -l doen :)

Verwijderd

Op zaterdag 05 januari 2002 18:21 schreef Newjersey_nl het volgende:
je kan ook ls | wc -l doen :)
Volgens mij pak je op deze manier wel de subdirs mee, maar niet de inhoud ervan. En volgens mij was dit wel de bedoeling :
Op zaterdag 05 januari 2002 14:53 schreef Blubber het volgende:
je kan ook k moet dus weten hoeveel files er in een bepaald dir en al zijn subdirs zitten, ik gebruik linux. Hoe krijg ik dat voor elkaar?

  • balk
  • Registratie: Januari 2000
  • Laatst online: 20:19
Op zaterdag 05 januari 2002 18:21 schreef Newjersey_nl het volgende:
je kan ook ls | wc -l doen :)
maar dan neem je de bestanden in onderliggende directories niet mee. Is er een manier om de directories niet te tellen maar wel de bestanden in de onderliggende dir's?

Verwijderd

Op zaterdag 05 januari 2002 18:29 schreef balk het volgende:

[..]

maar dan neem je de bestanden in onderliggende directories niet mee. Is er een manier om de directories niet te tellen maar wel de bestanden in de onderliggende dir's?
find -type f | wc -l
telt alleen de bestanden

find -type d | wc -l
telt alleen de directories

zie man find voor de overige opties

  • grep
  • Registratie: Augustus 2001
  • Laatst online: 24-07 11:23

grep

meer begrep...

Op zaterdag 05 januari 2002 18:29 schreef balk het volgende:

[..]

maar dan neem je de bestanden in onderliggende directories niet mee. Is er een manier om de directories niet te tellen maar wel de bestanden in de onderliggende dir's?
find * -type f | wc -l

telt alleen de 'regular files' en is dus ook een betere oplossing dan die van hammerhead, want op deze manier worden de directories niet meegetelt (die onder Unix eigenlijk niet meer dan speciale files zijn).

(ok 'Operations' had blijkbaar een hoger cijfer op z'n typdiploma dan ik :) )

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 17:20

odysseus

Debian GNU/Linux Sid

code:
1
2
3
4
5
odysseus@odysseus:~$ find *
find: invalid predicate `-'
odysseus@odysseus:~$ ls -R | grep -v \.\/ | grep -v ^$ | grep -v \.: | wc -l
  14024
odysseus@odysseus:~$

En ja, je kunt al die grep-opdrachten ook in een enkele grep zetten, maar dat vereist dan wel ongeveer een klein half uur studie om te zien hoe die regexp in elkaar zit, als je die dingen niet dagelijks gebruikt >:) . Zo werkt het in ieder geval ook, en goed genoeg zolang je dat niet elke minuut op je volledige schijf gaat draaien...

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 16-08 16:08

deadinspace

The what goes where now?

Het moet ook 'find . -type f' zijn, niet 'find * -type f'. De GNU find eet ook 'find -type f' btw.

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 17:20

odysseus

Debian GNU/Linux Sid

Op zaterdag 05 januari 2002 21:44 schreef deadinspace het volgende:
Het moet ook 'find . -type f' zijn, niet 'find * -type f'. De GNU find eet ook 'find -type f' btw.
Ik wilde nu net laten zien dat dat commando niet klopte :) . En nog even een alternatief geven. Alleen ben ik daarna zo stom om niet het originele kloppende commando ook nog even te geven...

* odysseus merkt nog even op dat je met 'locate' ook een heel eind kunt komen, al zul je dan wel ook directories gaan tellen...maar eigenlijk is een directory natuurlijk ook gewoon een bestand, het besturingssysteem doet er alleen wat speciaals mee :o

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
Op zaterdag 05 januari 2002 19:56 schreef odysseus het volgende:
code:
1
ls -R | grep -v \.\/ | grep -v ^$ | grep -v \.: | wc -l

En ja, je kunt al die grep-opdrachten ook in een enkele grep zetten, maar dat vereist dan wel ongeveer een klein half uur studie om te zien hoe die regexp in elkaar zit
Valt reuze mee hoor:
code:
1
ls -R | grep -vE "\.\/|^$|\.:" | wc -l

De find methode is natuurlijk wat makkelijker.

  • grep
  • Registratie: Augustus 2001
  • Laatst online: 24-07 11:23

grep

meer begrep...

Op zaterdag 05 januari 2002 21:44 schreef deadinspace het volgende:
Het moet ook 'find . -type f' zijn, niet 'find * -type f'. De GNU find eet ook 'find -type f' btw.
Waarom is find * niet goed dan?
Bij mij werkt het prima onder Slackware (net als find . inderdaad).

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 16-08 16:08

deadinspace

The what goes where now?

Op zondag 06 januari 2002 11:06 schreef grep het volgende:
Waarom is find * niet goed dan?
Bij mij werkt het prima onder Slackware (net als find . inderdaad).
Omdat je dan in de problemen komt als er in de huidige dir een file/dir name staat die met '-' begint (probeer maar).

Officieel moet het zelfs 'find . -print' zijn iirc, omdat de originele find eist dat je een actie meegeeft, maar de meeste implementaties van find slikken het wel als je geen actie meegeeft (en vallen dan terug op de default actie, print).

  • grep
  • Registratie: Augustus 2001
  • Laatst online: 24-07 11:23

grep

meer begrep...

Op zondag 06 januari 2002 17:23 schreef deadinspace het volgende:

[..]

Omdat je dan in de problemen komt als er in de huidige dir een file/dir name staat die met '-' begint (probeer maar).

Officieel moet het zelfs 'find . -print' zijn iirc, omdat de originele find eist dat je een actie meegeeft, maar de meeste implementaties van find slikken het wel als je geen actie meegeeft (en vallen dan terug op de default actie, print).
'k heb het geprobeerd en ik begrijp het nu ook. find ziet het file dan als een argument en probeert het te interpreteren.
Thanks, weer wat geleerd !
Pagina: 1