Grote bestanden vinden met find in Terminal op de Mac

Met find doorzoekt u een map en de onderliggende mappen op bestandsgrootte of naam. De opdrachten hieronder tonen alleen gevonden paden; u bepaalt daarna zelf welke bestanden u wilt bekijken.

Bekijk de opdrachten in actie 11 seconden

Druk op afspelen: de opdrachten verschijnen letter voor letter. U kunt pauzeren en het beeld vergroten.

Terminalopname in een aparte oefenmap. Eerst zoeken op grootte, daarna op de uitgang .txt. Het procentteken is de prompt.

Stap voor stap

  1. Maak een aparte oefenmap

    Open Terminal en voer deze regel uit met Return. mktemp maakt een nieuwe tijdelijke map. Door && gaat cd er alleen naartoe als dat is gelukt. Houd hetzelfde Terminal-venster aan voor alle stappen.

                werkmap=$(mktemp -d) && cd "$werkmap"
              

    Controle: De prompt keert zonder foutmelding terug. Ga bij een fout niet verder: de volgende stap hoort in een nieuwe, lege oefenmap.

  2. Maak een groot en een klein oefenbestand

    Voer de drie regels uit in de nieuwe map. mkfile maakt hier een bestand van twee MiB, gevuld met nullen. Het tweede bestand bevat één regel tekst. De aanhalingstekens houden de spatie in de grote bestandsnaam bij elkaar.

                mkdir archief
    mkfile 2m "archief/groot bestand.bin"
    printf 'Klein oefenbestand\n' > klein.txt
              

    Controle: Er staat een bestand van 2097152 bytes in de submap archief en een klein.txt in de oefenmap. Gebruik de voorbereiding niet in een bestaande werkmap met gelijknamige bestanden; de schrijfopdrachten kunnen die overschrijven.

  3. Zoek bestanden groter dan één MiB

    De punt betekent: begin in de huidige map. find gaat ook door de submappen. -type f beperkt de resultaten tot gewone bestanden; -print schrijft de gevonden paden naar het scherm.

                find . -type f -size +1M -print
              

    Controle: U ziet ./archief/groot bestand.bin. Het kleine tekstbestand verschijnt niet. De opdracht verplaatst of verwijdert niets.

  4. Zoek vervolgens op bestandsnaam

    Gebruik voor de volgende zoekopdracht het patroon tussen enkele aanhalingstekens. Zo krijgt find het sterretje letterlijk en laat u de shell het niet vooraf vervangen door namen uit de huidige map.

                find . -type f -name '*.txt' -print
              
    De tweede find-opdracht met het geciteerde patroon *.txt vindt uitsluitend klein.txt.
    Een andere selectie in dezelfde oefenmap: alleen namen die eindigen op .txt.

    Controle: U ziet ./klein.txt. Het bestand met de uitgang .bin valt buiten deze selectie. De naamvergelijking is hoofdlettergevoelig: .TXT voldoet niet aan dit patroon.

Wat betekent de grootte precies?

Bij deze Mac-versie van find staat M voor eenheden van 1.048.576 bytes, oftewel één MiB. De plus betekent groter dan. Een bestand van 1.048.577 bytes valt binnen de selectie, een bestand van precies 1.048.576 bytes niet. Het oefenbestand van twee MiB valt er dus in. Let op de hoofdletters: mkfile 2m en find … -size +1M gebruiken verschillende notaties.

find kijkt naar de bestandsgrootte. Dat is niet automatisch de ruimte die u door verwijderen terugkrijgt; bijvoorbeeld een bestand met niet-toegewezen blokken kan minder schijfruimte innemen. De uitkomst is een lijst om te onderzoeken, geen berekening van gegarandeerd vrij te maken opslag.

Dezelfde zoekopdracht in een eigen map

Ga eerst in Terminal naar de map die u wilt onderzoeken. Gebruik cd gevolgd door het volledige pad van die map tussen aanhalingstekens; die houden eventuele spaties bij elkaar. Controleer met pwd waar u bent. Gebruik daar vervolgens de zoekopdracht uit stap 3 of 4; maak de oefenbestanden daar niet opnieuw aan.

Begin met een overzichtelijke map. Grote mappen kunnen tijd kosten; met Control-C onderbreekt u de lopende zoekopdracht. Krijgt u een melding over ontbrekende toegang, dan is die map niet volledig doorzocht. Pas geen toegangsrechten aan alleen om een eerste inventarisatie te maken.

Van een gevonden pad naar een bruikbare keuze

./ aan het begin betekent dat het pad relatief aan uw huidige map is. Bekijk het gevonden bestand in Finder of de bijbehorende app voordat u er iets mee doet. find sorteert deze lijst niet automatisch van groot naar klein. Een groot bestand kan een nuttig archief of onderdeel van een app zijn.

Wilt u twee gevonden tekstversies inhoudelijk vergelijken? Ga verder met tekstbestanden vergelijken met diff.

Bekijk alle tips