Tips en Trucs 2018

Bestanden tellen

Taken zoals het tellen van het aantal bestanden in een map (en eventuele submappen) zijn lastige en vervelende taken voor ons mensen, maar een peulschil voor computers.

Tellen met de KDE bestandsbeheerder Dolphin

Start de KDE Dolphin bestandsbeheerder en open een map. Het aantal in de map aanwezige items (mappen en bestanden) vind je onderaan in de statusbalk.
Statusbalk

Deze methode telt enkel de bestanden en mappen in de map zelf, niet de bestanden die in eventuele submappen staan. De tussen haakjes weergegeven grootte is de grootte van de in deze map voorkomende bestanden, dus exclusief de submappen en hun inhoud.

Geselecteerde bestanden en mappen tellen

Bij het selecteren van bestanden en mappen wordt in de statusbalk informatie weergegeven over het aantal geselecteerde mappen en bestanden. Weeral wordt enkel de grootte van de geselecteerde bestanden weergegeven.
Selectie

Dieper graven via Eigenschappen

Om de grootte en het aantal bestanden en submappen inclusief de submappen te achterhalen, klik je met de rechtermuisknop tussen de pictogrammen en start je in het snelmenu de opdracht Eigenschappen.
Eigenschappen

Dit werkt ook voor geselecteerde mappen en bestanden, maar klik dan wel met de rechtermuisknop op de selectie.

Tellen met terminalopdrachten

Bestanden en mappen kan je ook in een terminalvenster tellen. Dit is vooral handig op afstand via een SSH verbinding of/en in scripts.

dany@pindabook:~> ls -l | wc -l
23

De ls -l opdracht zorgt voor het weergeven van de bestanden en mappen, terwijl de wc -l het aantal door ls -l geproduceerde regels telt. Een opmerkzame gebruiker merkt al vlug dat deze terminalopdracht één item meer telt dan Dolphin. De ls -l opdracht zelf toont ons waarom:

dany@pindabook:~> ls -l
totaal 1152
lrwxrwxrwx 1 dany users     33 28 mei 17:49 Afbeeldingen -> /usr/home/Documents/Afbeeldingen/
drwxr-xr-x 2 dany users   4096 18 aug 13:45 bin
drwxr-xr-x 2 dany users   4096 27 mei 20:58 Bureaublad
-rw-r--r-- 1 dany users 133474 27 jul 15:46 cijfersxml_1080.xml
-rw-r--r-- 1 dany users 258074 14 sep 16:52 countries.xml
lrwxrwxrwx 1 root root      10 25 aug 14:11 default.html -> index.html
lrwxrwxrwx 1 dany users     20 28 mei 17:48 Documenten -> /usr/home/Documents/
drwxr-xr-x 4 dany users   4096 14 okt 18:41 Downloads
drwxr-xr-x 4 dany users   4096 30 sep 13:53 Eindwerk
-rwxr-xr-x 1 dany users  12376 27 aug 19:20 hello
-rw-r--r-- 1 dany users     82 27 aug 19:17 hello.c
-rwxr-xr-x 1 dany  1000   6269 24 aug 20:55 index.html
-rw-r--r-- 1 dany users 137907  5 okt 12:31 master.zip
-rw-r--r-- 1 dany users 540030 15 sep 10:00 metadata-kuleuven-test.xml
lrwxrwxrwx 1 dany users     27 28 mei 17:49 Muziek -> /usr/home/Documents/Muziek/
drwxr-xr-x 4 dany users   4096 28 mei 19:33 onedrive
drwxr-xr-x 3 dany users   4096  2 sep 14:21 OneDrive
lrwxrwxrwx 1 dany users     29 28 mei 17:49 Openbaar -> /usr/home/Documents/Openbaar/
lrwxrwxrwx 1 dany users     30 28 mei 17:50 Sjablonen -> /usr/home/Documents/Sjablonen/
-rw-r--r-- 1 dany users  28393 30 okt  2017 vaarwegenkaart.xml
lrwxrwxrwx 1 dany users     28 28 mei 17:50 Video's -> /usr/home/Documents/Video's/
drwxr-xr-x 2 dany users   4096  5 okt 12:55 WaoN-master

De ls -l toont niet alleen een overzicht van de in de map aanwezige bestanden en mappen, maar ook het totaal aantal door deze map gebruikte blokken schijfruimte (eerste regel). De regel met het het totaal kan je wegfilteren met de volgende opdracht:

dany@pindabook:~> ls -l | tail -n +2
lrwxrwxrwx 1 dany users     33 28 mei 17:49 Afbeeldingen -> /usr/home/Documents/Afbeeldingen/
drwxr-xr-x 2 dany users   4096 18 aug 13:45 bin
drwxr-xr-x 2 dany users   4096 27 mei 20:58 Bureaublad
-rw-r--r-- 1 dany users 133474 27 jul 15:46 cijfersxml_1080.xml
-rw-r--r-- 1 dany users 258074 14 sep 16:52 countries.xml
lrwxrwxrwx 1 root root      10 25 aug 14:11 default.html -> index.html
lrwxrwxrwx 1 dany users     20 28 mei 17:48 Documenten -> /usr/home/Documents/
drwxr-xr-x 4 dany users   4096 14 okt 18:41 Downloads
drwxr-xr-x 4 dany users   4096 30 sep 13:53 Eindwerk
-rwxr-xr-x 1 dany users  12376 27 aug 19:20 hello
-rw-r--r-- 1 dany users     82 27 aug 19:17 hello.c
-rwxr-xr-x 1 dany  1000   6269 24 aug 20:55 index.html
-rw-r--r-- 1 dany users 137907  5 okt 12:31 master.zip
-rw-r--r-- 1 dany users 540030 15 sep 10:00 metadata-kuleuven-test.xml
lrwxrwxrwx 1 dany users     27 28 mei 17:49 Muziek -> /usr/home/Documents/Muziek/
drwxr-xr-x 4 dany users   4096 28 mei 19:33 onedrive
drwxr-xr-x 3 dany users   4096  2 sep 14:21 OneDrive
lrwxrwxrwx 1 dany users     29 28 mei 17:49 Openbaar -> /usr/home/Documents/Openbaar/
lrwxrwxrwx 1 dany users     30 28 mei 17:50 Sjablonen -> /usr/home/Documents/Sjablonen/
-rw-r--r-- 1 dany users  28393 30 okt  2017 vaarwegenkaart.xml
lrwxrwxrwx 1 dany users     28 28 mei 17:50 Video's -> /usr/home/Documents/Video's/
drwxr-xr-x 2 dany users   4096  5 okt 12:55 WaoN-master

De tail opdracht toont dus alle regels uitgenomen de eerste. Om het aantal regels nu te tellen, geven we de gefilterde regels door aan de wc -l opdracht:

dany@pindabook:~> ls -l | tail -n +2 | wc -l
22

Om de grootte van deze map op schijf te bepalen, gebruik je de opdracht:

dany@pindabook:~> ls -hl | head -1
totaal 1,2M

Deze opdracht toont de eerste regel van de ls -lh opdracht, waarbij de grootte in mensentaal (h = human-readable) wordt weergegeven. Dus in het voorbeeld in MBytes i.p.v. schijfblokken.

Om de grootte van deze map inclusief alle submappen te achterhalen, gebruik je de opdracht:

dany@pindabook:~> du -sh .
2,3G

De punt achter deze opdracht stelt de huidige map voor. Vervang deze optie door het pad van een andere map om de grootte op schijf van die andere map te bepalen.

Om enkel het aantal bestanden met een bepaald type te tellen:

dany@pindabook:~> ls -l *.xml
-rw-r--r-- 1 dany users 133474 27 jul 15:46 cijfersxml_1080.xml
-rw-r--r-- 1 dany users 258074 14 sep 16:52 countries.xml
-rw-r--r-- 1 dany users 540030 15 sep 10:00 metadata-kuleuven-test.xml
-rw-r--r-- 1 dany users  28393 30 okt  2017 vaarwegenkaart.xml
dany@pindabook:~> ls -l *.xml | wc -l
4

De aan de ls -l opdracht toegevoegde zoekoptie zorgt dat enkel de XML bestanden worden weergegeven. Daarenboven wordt bij zoekopdrachten geen regel met het totaal weergeven, waardoor je de filter voor het tellen moet laten vallen.

Om het aantal mappen in een map te tellen, gebruik je de opdracht:

dany@pindabook:~> ls -d */ | wc -l
13

Ook hier zorgen de opties bij de ls opdracht dat enkel de mappen worden geteld. Om alle mogelijke opties van een opdracht te leren kennen, gebruik je de --help opties, een voorbeeld:

dany@pindabook:~> ls --help
Gebruik:  ls [OPTIE...] [BESTAND...]

Toont informatie over de gegeven BESTANDen (standaard over de huidige map).

De items worden alfabetisch gesorteerd als geen van de opties '-cftuvSUX'
noch '--sort' gegeven is.

(Een verplicht argument bij een lange optie geldt ook voor de korte vorm.)
  -a, --all                  ook de namen tonen die beginnen met een '.'
  -A, --almost-all           als '-a', maar de items '.' en '..' weglaten
      --author               (met '-l') de auteur van elk bestand tonen
  -b, --escape               niet-grafische tekens tonen als codes in C-stijl
      --block-size=SIZE      with -l, scale sizes by SIZE when printing them;
                               e.g., '--block-size=M'; see SIZE format below
  -B, --ignore-backups       do not list implied entries ending with ~
  -c                         with -lt: sort by, and show, ctime (time of last
                               modification of file status information);
                               with -l: show ctime and sort by name;
                               otherwise: sort by ctime, newest first
  -C                         de items in kolommen presenteren
      --color[=WANNEER]      bestandstypen met kleuren onderscheiden;
                               WANNEER is 'always' (altijd), 'never' (nooit),
                               of 'auto' (uitvoerapparaatafhankelijk);
                               zie hieronder voor meer informatie
  -d, --directory            alleen mapnamen tonen, niet hun inhoud,
                               en symbolische koppelingen niet volgen
  -D, --dired                uitvoer produceren voor de 'dired'-modus van Emacs
  -f                         hetzelfde als '-a -U' zonder '-l -s --color'
  -F, --classify             achter elk item het type aanduiden (één van */=>@|)
      --file-type            idem, maar '*' niet tonen
      --format=WOORD         te gebruiken opmaak; WOORD kan zijn 'commas' (-m),
                               'across' of 'horizontal' (-x), 'vertical' (-C),
                               'long' of 'verbose' (-l), 'single-column' (-1)
      --full-time            hetzelfde als '-l --time-style=full-iso'
  -g                         als '-l', maar geen eigenaar tonen
      --group-directories-first
                             mappen vóór bestanden groeperen; kan aangevuld
                               worden met een '--sort', maar gebruik van
                               '--sort=none' of '-U' deactiveert groepering
  -G, --no-group             in a long listing, don't print group names
  -h, --human-readable       with -l and -s, print sizes like 1K 234M 2G etc.
      --si                   likewise, but use powers of 1000 not 1024
  -H, --dereference-command-line
                             symbolische koppelingen op opdrachtregel volgen
      --dereference-command-line-symlink-to-dir
                             symbolische koppelingen op opdrachtregel die naar
                               een map verwijzen volgen
      --hide=PATROON         de namen die voldoen aan PATROON niet tonen
                                 (geldt niet samen met '-a' of '-A')
      --hyperlink[=WHEN]     hyperlink file names; WHEN can be 'always'
                               (default if omitted), 'auto', or 'never'
      --indicator-style=WORD  append indicator with style WORD to entry names:
                               none (default), slash (-p),
                               file-type (--file-type), classify (-F)
  -i, --inode                print the index number of each file
  -I, --ignore=PATTERN       do not list implied entries matching shell PATTERN
  -k, --kibibytes            default to 1024-byte blocks for disk usage;
                               used only with -s and per directory totals
  -l                         uitgebreide bestandsinformatie tonen
  -L, --dereference          bij het tonen van bestandsinformatie voor een
                               symbolische koppeling, de informatie over het
                               bestand waar de koppeling naar verwijst tonen
                               in plaats van over de koppeling zelf
  -m                         geen kolommen maar kommagescheiden lijst tonen
  -n, --numeric-uid-gid      als '-l', met numerieke gebruikers- en groeps-ID's
  -N, --literal              de itemnamen tonen zonder aanhalingen of escapes
  -o                         als '-l', maar groepsinformatie niet tonen
  -p, --indicator-style=slash
                             een '/'-indicator achter mapnamen toevoegen
  -q, --hide-control-chars   print ? instead of nongraphic characters
      --show-control-chars   show nongraphic characters as-is (the default,
                               unless program is 'ls' and output is a terminal)
  -Q, --quote-name           enclose entry names in double quotes
      --quoting-style=WORD   use quoting style WORD for entry names:
                               literal, locale, shell, shell-always,
                               shell-escape, shell-escape-always, c, escape
                               (overrides QUOTING_STYLE environment variable)
  -r, --reverse              de sorteervolgorde omdraaien
  -R, --recursive            submappen recursief tonen
  -s, --size                 toegewezen aantal blokken tonen voor ieder bestand
  -S                         op bestandsgrootte sorteren (grootste eerst)
      --sort=WIJZE           te gebruiken sorteerwijze;
                               WIJZE kan zijn: 'size' (-S), 'time' (-t),
                               'none' (-U), 'version' (-v), 'extension' (-X)
      --time=SOORT           (met '-l') te tonen soort tijd;
                               SOORT kan zijn: 'ctime' of 'status' (-c),
                               'atime' of 'access' of 'use' (-u); gegeven
                               tijdssoort ook gebruiken als sorteersleutel
                               als '--sort=time' gegeven is (nieuwste eerst)
      --time-style=TIME_STYLE  time/date format with -l; see TIME_STYLE below
  -t                         op de tijd van laatste wijziging sorteren
  -T, --tabsize=AANTAL       te gebruiken tabbreedte in plaats van 8
  -u                         met -lt: op toegangstijd sorteren en deze tonen;
                               met -l: toegangstijd tonen en op naam sorteren;
                               anders: op toegangstijd sorteren (nieuwste eerst)
  -U                         de items ongesorteerd tonen, op plaatsingsvolgorde
  -v                         logisch sorteren op (versie)nummers in de naam
  -w, --width=BREEDTE        te gebruiken schermbreedte; 0 betekent onbegrensd
  -x                         de items per regel tonen i.p.v. in kolommen
  -X                         alfabetisch sorteren op bestandsextensie
  -Z, --context              beveiligingscontext van elk bestand tonen
  -1                         één item per regel tonen; onderdruk \n met -q of -b
      --help      deze hulptekst tonen en stoppen
      --version   programmaversie tonen en stoppen

GROOTTE is een geheel getal met een optionele eenheid (bijv. 10K is 10*1024).
Mogelijke eenheden zijn: K, M, G, T, P, E, Z, Y (machten van 1024)
of KB, MB, ... (machten van 1000).  Bijvoorbeeld: 10MB is 10*1000*1000.

The TIME_STYLE argument can be full-iso, long-iso, iso, locale, or +FORMAT.
FORMAT is interpreted like in date(1).  If FORMAT is FORMAT1FORMAT2,
then FORMAT1 applies to non-recent files and FORMAT2 to recent files.
TIME_STYLE prefixed with 'posix-' takes effect only outside the POSIX locale.
Also the TIME_STYLE environment variable sets the default style to use.

Het gebruik van kleuren om bestandstypes te onderscheiden kan uitgeschakeld
worden met '--color=never' (standaard).  Met '--color=auto' produceert 'ls'
alleen kleurcodes als standaarduitvoer verbonden is met een terminal.
Omgevingsvariabele LS_COLORS kan deze instellingen wijzigen.  Gebruik
het commando 'dircolors' om deze variabele in te stellen.

De afsluitwaarde is:
 0  indien OK,
 1  bij kleine problemen (bijv. geen toegang tot een submap),
 2  bij serieuze problemen  (bijv. geen toegang tot argument op opdrachtregel).

Online hulp bij GNU coreutils: 
Report ls translation bugs to 
Volledige documentatie is beschikbaar op: 
of lokaal via: info '(coreutils) ls invocation'