Linux
Vinden van bestanden
find and globbing
Leerdoelen
- We gaan bestanden zoeken op een Linux systeem
- Met de volledige naam
- Maar ook als we maar een deel van de naam weten (de extensie)
find (2)
find ~/Documents -name "test.txt" -print
- Het pad (path) geeft aan waarin we zoeken
- Options geven aan waarnaar we zoeken
- naar een bestand met de naam test.txt
- Acties vertellen wat find moet doen
Globbing
- Stel dat je niet helemaal meer weet hoe een bestand heet, dan gebruik je globbing
- Globbing is een functie van de shell om bestandsnamen aan te vullen
- Het vervangen van willekeurige karakters door wildcards (*,?)
- Wildcards vullen stukken in die we niet zeker weten
Asterisk
- *: het staat voor 0 of meer characters
- a*b kan dus zijn:
- ab
- azb
- a8b
- a#b
- afshfhkajragwhrwhhewakjb
- acdsayf84w762068092%$$#%4344hjgjjkhjjb
- Zolang de bestandsnaam maar begint met een a en eindigt met een b
Vraagteken
- ?: staat voor één enkel onbekend character
- man.?.gz kan dus zijn:
- man.a.gz
- man.#.gz
- man.1.gz
- Maar niet man..gz, want er moet een character staan
Werken met het vraagteken
find /usr/share/man/man? -name "passwd.?.gz"
- We zien een wildcard in het path en in de te zoeken bestandsnaam
- Het vindt passwd.1.gz en passwd.5.gz
- In verschillende directories
- Welke directories zijn dit?
- Welke hoofdstukken gaat de manual over?
- Tip: man man
Reeksen
- […] – zoek naar alle characters die … matchen
- [1234] matched 1, 2, 3 en 4
- [0123456789] kan makkelijker met:
- [a-z] is a tot en met z
- [A-Z] is A tot en met Z
- Reeksen mogen gecombineerd worden
Iets niet vinden
find /usr/share/man/nl/ -name "man[^125]"
- Negatieve zoekopdracht: ^ is niet
- Vindt niet man1, man2 en man5
- Vindt man7 en 8
- ^ moet binnen de blokhaken staan.
Meer dan alleen find
- Globbing kan je gebruiken met alle commando’s die over bestanden gaan, zoals
- ls
- mkdir
- rmdir
- touch
- ... etc.
Samenvatting
- We hebben leren werken met find
- find zoekt bestanden en directories
- Met -exec kunnen we find vertellen om een actie uit te voeren op de gevonden bestanden
- We hebben leren werken met globbing:
- We hebben de wildcards * en ? gezien
- We hebben gewerkt met reeksen