web analytics

Bestanden vinden onder Linux (Mint)

Print Friendly, PDF & Email

Als er nu iets is dat je regelmatig moet doen is op zoek gaan naar een bepaald bestand. Wie heeft er al niet eens iets bewaard op een totaal verkeerde plaats en als je dan het betreffende bestand wil terugvinden, dan kun je uren bezig zijn.

Om bestanden te vinden kan je een grafische bestandsbeheerder gebruiken zoals Nautilus in Gnome, Dolphin in KDE, Thunar in Xfce en in ons geval Nemo voor Cinnamon. Wat zal opvallen is dat de mogelijkheden die geboden worden naar zoekcriteria toe nogal summier zijn in die grafische tooltjes. Je moet in Nemo niet te zoeken naar bestanden van een bepaalde gebruiker tussen 2 verschillende datums. De oplossing voor dit type zoekslagen ligt hem in het gebruik van zoekcommando’s via de shell.

We gaan hier beide eens behandelen.

Bestanden zoeken via de grafische bestandsbeheerder Nemo

Selectie_022Onder Linux Mint Cinnamon heb je Nemo als bestandsbeheerder. Om daar een bestand op te zoeken klik je rechts in Nemo op de knop met het vergrootglas. Je bent dan in zoek-modus. Door de knop met het vergrootglas opnieuw aan te klikken, verlaat je de zoekmodus en kom je terug in de nomale bestandsbeheerder-modus van Nemo.

Eens in zoekmodus tik je in het invoerveld het zoekcriterium in. Het effectieve zoeken start je door  rechts in het invoerveld op het vergrootglas klikken en de Zoekresultaten verschijnen dan in je bestandsbeheerder.

Zoeken naar 'manager'_019Zodra de resultaten vertoond worden, kun je je zoek criterium verfijnen door op het grote + teken te klikken, rechts van de knop [Herladen]. Per klik op de + komt er lijntje bij, waar je extra beperkingen kunt opleggen aan je zoekopdracht.

Selectie_023Selectie_024Selectie_025Je krijgt 2 type filters ter beschikking, namelijk Locatie en Bestandstype.

Binnen de Locatie-lijst  kan je dan kiezen waar de zoekopdracht moet plaatsvinden op je HD en bij bestandstype kan je het type bestand aanduiden..
Je kan verschillende locaties en bestandtypes combineren door telkens op het zwarte + tekentje te klikken. Iedere keer krijg je dan een optieregel bij waar je dan kan kiezen tussen Locatie of Bestandstype.

Eens je selectie klaar is, klik je op de knop [Herladen] om de resultaten bij te werken.

Op die manier kan je je zoekcriterium dermate verfijnen dat je snel aan het gewenste resultaat komt.

Hoe er wel rekening mee dat door het verfijnen van de zoekslag het lang kan duren om resultaten te filteren. Bij een trage harde schijf zal het nog langer duren.

Zoeken naar 'manager'_028Zoeken via de terminal

Het kunnen zoeken via de terminal is zeker niet onbelangrijk, daar je bij het veranderen van distro plots met een andere bestandsbeheerder kan moeten werken en je dan voor dat programma de zoekwerkwijze moet aanleren. Via de terminal zoeken is sowieso identiek voor alle Linux distributies en als je ooit niet meer in je grafische omgeving geraakt is het snel vinden van een bepaald configuratiebestand via de terminal welgekomen.

Voor simpele zoekslagen voldoen de grafische opties die geïmplementeerd zijn in een grafische bestandsbeheerder meer dan voldoende, maar voor het echte (systeembeheerders)werk, is de terminal wel meer geschikt.

BASH stelt levert een viertal commando’s aan waarmee je bestanden kan zoeken:

  • find
  • locate
  • whereis
  • which

Van deze vier zal ik in dit artikel enkel het commando “find” behandelen.

Bestanden vinden via find

Het “find” commando is een zeer krachtige tool die je toe laat om naar bestanden te zoeken. De simpelste vorm van het commando zoekt in de huidige map en vervolgens recursief door al de onderliggende submappen, die voldoen aan het zoekcriterium. Je kan zoek naar bestanden op naam, eigenaar, groep, type, rechten, datum en nog andere criteria.

Het volgende commando toont alle bestanden die gevonden zijn in de huidige map.

find .

Het puntje achter het commando betekent de ‘huidige map’.
Terminal_030
Als het find commando niks vindt, wordt er helemaal niks getoond.

Zoeken op naam (hoofdletter gevoelig)

Om bestanden te vinden die voldoen aan een specifiek patroon, gebruik je het “-name” argument. Je kan jokertekens voor bestandsnamen gebruiken (zoals de “*”), maar je moet dan wel het escape character (“\”) ervoor zetten, of ze tussen quotes plaatsen. Per default is het find commando hoofdlettergevoelig en het “-name” argument is dat ook..

Bijvoorbeeld, als we alle bestanden willen vinden die beginnen met “Gam” in de Werkmap folder, zouden we eerst naar de Werkmap folder gaan via “cd ~/Werkmap” (zonder de quotes) om deze map onze aktieve map te maken en dan onderstaand commando ingeven:

find . -name Gam\*

Alle bestanden in de huidige map die beginnen met “Gam” zullen vertoond worden.

Terminal_031

Zoeken op naam (hoofdletter ongevoelig)

Maak gebruik van het argument “-iname“.

find -iname Gam\*

Terminal_032Hier zijn zowel de bestanden die met “Gam” beginnen als deze die met “gam” beginnen.

Zoeken op namen die niet voldoen aan een criterium

Je kan het zoeken ook omkeren, namelijk zoeken naar die bestanden die NIET voldoen aan het zoekcriterium. Om dat te bereiken moet je het argument laten voorafgaan door  “-not” of “!“. Als je “!” gebruikt is het wel nodig het escape karakter “\” ervoor te zetten.:

find -not -name Gam\*

Of

find \! -name Gam\*

Terminal_033

Zoeken naar type

Je kan het type bestand dat je wil te zien krijgen via de parameter “-type” meegeven, als volgt:

find -type

Some of the most common descriptors that you can use to specify the type of file are here:

  • f: gewone bestanden (regular file)
  • d: folder (directory)
  • l: symbolische link (symbolic link)
  • c: karakter apparaten (character devices)
  • b: blok apparaten (block devices)

Zoeken naat alle bestanden die eindigen op “.conf” doe je dus zo:

find / -type f -name “*.conf”

Terminal_034Het find commando begint in de root (/) voor het type bestanden (-type f) voor alle bestanden die eindigen op .conf (-name “*.conf”)

Filtering op tijd en grootte

Find heeft extra mogelijkheden om je resultaat te filteren op tijd of grootte.

Grootte

Maak gebruik van de “-size” parameter om op grootte te filteren.

Je voegt een suffix toe aan het einde van de numerieke sleutelwaarde om de eenheid weer te geven. Deze zijn de meest voorkomende eenheden:

  • c: bytes
  • k: Kilobytes
  • M: Megabytes
  • G: Gigabytes
  • b: 512-byte blocks

Om alle bestanden te vinden die exact 50 bytes groot zijn, tik je:

find / -size 50c

Voor deze die kleiner zijn dan  50 bytes, gebruik je:

find / -size 50c

En om deze te vinden doe groter zijn dan 700 Megabytes, is dat de opdracht:

find / -size +700M

Time

Voor ieder bestand slaat Linux de tijdinformatie op van de access times, modification times, en change times.

  • Access Time: Laatste tijd dat een bestand gelezen of naartoe geschreven werd.
  • Modification Time: Laatste tijd dat de inhoud van het bestand veranderd werd.
  • Change Time: Laatste tijd dat de inode meta-data van het bestand werd veranderd.

Je gebruikt resp. de parameters “-atime“, “-mtime“, and “-ctime” met de + en tekens om groter dan of kleiner dan aan te geven .

De waarde van de parameter geeft het aantal dagen aan waarop je wenst te zoeken.

Om bestanden te vinden die 1 dag geleden veranderd werden tik je:

find / -mtime 1

Voor bestanden die minder dan 1 dag geleden benaderd werden gebruik je:

find / -atime -1

Voor bestanden die meer dan 3 dagen geleden hun meta informatie veranderd hadden, gebruik je:

find / -ctime +3

Er zijn ook nog bijkomende parameters die je kan gebruiken om minuten aan te geven in plaats van dagen:

find / -mmin -1

Zo vind je de bestanden die minder dan 1 minuut geleden veranderd werden.

Find kan ook vergelijkingen doen met een referentiebestand en deze teruggeven die nieuwer waren:

find / -newer myreferenefile

Zoeken naar eigenaar en rechten

Je kan zoeken naar bestanden volgens ‘file owner’ of ‘group owner’.

Dat doe je door resp. gebruik te maken van de “-user” and “-group” parameters. Om de bestanden te vinden waarvan de syslog eigenaar is, tik je:

find / -user syslog

Op dezelfde manier vind je bestanden die toebehoren aan de “shadow” group via volgende opdracht:

find / -group shadow

Je kan ook zoeken naar bestanden met specifieke gebruikersrechten.

Als je enkel de bestanden wil die overeen komen met specifieke rechten gebruik je volgend formaat:

find / -perm 644

Hier verkrijg je enkel die bestanden met de aangegeven rechten.

Wens je de bestanden te vinden met tenminste een bepaalde set van rechten, dan gebruik je volgende formaat:

find / -perm 644

In dat geval zal je alle bestanden vinden die extra rechten hebben. Een bestand met de rechten “744” zal dus in je lijst voorkomen.

En nu?

Het find commando heeft nog veel meer mogelijkheden, Leer er meer over via volgende links:

Deze pagina’s tonen je tientallen voorbeelden van find commando’s:

 

Beoordeling

Geef een reactie

%d bloggers liken dit: