leer hoe het find commando te gebruiken in deze tutorial uit onze archieven.
Het spreekt voor zich dat elke goede Linux desktop omgeving de mogelijkheid biedt om je bestandssysteem te doorzoeken naar bestanden en mappen. Als je standaard desktop dat niet doet — omdat dit Linux is-kun je altijd een app installeren om het zoeken in je directory hiërarchie een fluitje van een cent te maken.
maar hoe zit het met de opdrachtregel?, Als je vaak op de opdrachtregel werkt of als je GUI-less Linux servers beheert, waar ga je dan heen als je een bestand moet vinden? Gelukkig heeft Linux precies wat je nodig hebt om de bestanden in kwestie te lokaliseren, ingebouwd in het systeem.
het commando in kwestie is find. Om het begrip van dit commando nog aantrekkelijker te maken, als je het eenmaal weet, kun je beginnen met het in je Bash scripts te werken. Dat is niet alleen gemak, dat is macht.,
laten we op de hoogte blijven met het find commando zodat je de controle kunt nemen over het lokaliseren van bestanden op je Linux servers en desktops, zonder de noodzaak van een GUI.
hoe het find commando te gebruiken
toen ik voor het eerst een glimp van Linux opnam, in 1997, begreep ik niet helemaal hoe het find Commando werkte; daarom leek het nooit te functioneren zoals ik had verwacht. Het leek eenvoudig; geef het commando find FILENAME (waar FILENAME de naam van het bestand is) en het commando werd verondersteld om het bestand te lokaliseren en terug te rapporteren. Ik wist niet dat er meer aan de hand was dan dat. Verreweg.,
Als u het commando man find uitgeeft, zult u zien dat de syntaxis van het commando find is:
find
natuurlijk, als u niet bekend bent met hoe man werkt, kunt u in de war raken of overweldigd worden door die syntaxis. Voor het gemak van begrip, laten we dat vereenvoudigen. De meest basale syntaxis van een basic find Commando ziet er als volgt uit:
find /path option filename
nu zullen we het aan het werk zien.
zoeken op naam
laten we dat basiscommando opsplitsen om het zo duidelijk mogelijk te maken., De meest simplistische structuur van het find commando moet een pad voor het bestand, een optie, en de bestandsnaam zelf bevatten. Je denkt misschien, ” als ik het pad naar het bestand ken, zou ik al weten waar het te vinden!”. Nou, het pad voor het bestand kan de root van uw schijf zijn; dus / zou een legitiem pad zijn. Het invoeren van dat als uw pad zou vinden langer duren om te verwerken-omdat het moet beginnen vanaf nul-maar als je geen idee hebt waar het bestand is, kunt u beginnen vanaf daar. In naam van de efficiëntie, is het altijd het beste om op zijn minst een idee waar te beginnen met zoeken.,
het volgende bit van het commando is de optie. Zoals met de meeste Linux commando ‘ s, heb je een aantal beschikbare opties. We beginnen echter bij het begin, dus laten we het gemakkelijk maken. Omdat we proberen een bestand op naam te vinden, zullen we een van de twee opties gebruiken:
-
naam – hoofdlettergevoelig
-
Iname – hoofdletterongevoelig
onthoud dat Linux zeer specifiek is over hoofdletters, dus als je op zoek bent naar een bestand met de naam Linux.odt, het volgende commando geeft geen resultaten.,
find / -name linux.odt
Als u echter het commando zou wijzigen met de optie-Iname, dan zou het find Commando uw bestand lokaliseren, ongeacht het geval. Dus het nieuwe commando ziet eruit als:
find / -iname linux.odt
zoeken op type
Wat als u niet zo bezig bent met het vinden van een bestand op naam, maar liever alle bestanden van een bepaald type zoekt?, Enkele van de meest voorkomende bestandsdescriptoren zijn:
-
f – regular file
-
d – directory
-
l – symbolische link
-
c – character devices
-
b – block devices
stel nu dat u alle block devices (een bestand dat verwijst naar een apparaat) op uw systeem., Met behulp van de-type optie, kunnen we dat zo doen:
find / -type c
het bovenstaande commando zou resulteren in heel veel uitvoer (veel ervan geeft rechten geweigerd aan), maar zou uitvoer bevatten die vergelijkbaar is met:
/dev/hidraw6/dev/hidraw5/dev/vboxnetctl/dev/vboxdrvu/dev/vboxdrv/dev/dmmidi2/dev/midi2/dev/kvm
Voilà! Blokkeer apparaten.
We kunnen dezelfde optie gebruiken om ons te helpen bij het zoeken naar configuratiebestanden. Zeggen, bijvoorbeeld, u wilt alle reguliere bestanden die eindigen in de lokaliseren .conf extensie., Dit commando zou er ongeveer uit zien als:
find / -type f -name "*.conf"
het bovenstaande commando zou de hele mapstructuur doorlopen om alle reguliere bestanden te vinden die eindigen op .conf. Als u weet dat de meeste van uw configuratiebestanden in /etc staan, kunt u dat als volgt specificeren:
find /etc -type f -name "*.conf”
het bovenstaande commando zou al uw bestanden weergeven .conf bestanden uit /etc (figuur 1).
resultaten naar een bestand uitvoeren
een handige truc is om de resultaten van de zoekopdracht naar een bestand uit te voeren. Wanneer u weet dat de output kan uitgebreid zijn, of als u wilt kammen door de resultaten later, dit kan ongelooflijk nuttig zijn. Hiervoor gebruiken we hetzelfde voorbeeld als hierboven en pipe de resultaten in een bestand genaamd conf_search. Dit nieuwe commando ziet er als volgt uit:
find /etc -type f -name "*.conf” > conf_search
u zult nu een bestand (conf_search) hebben dat alle resultaten bevat van het commando find.,
bestanden zoeken op grootte
nu komen we op een moment waarop het find Commando ongelooflijk nuttig wordt. Ik heb gevallen waar desktops of servers hebben gevonden hun schijven mysterieus gevuld. Om snel ruimte te maken (of te helpen het probleem te lokaliseren), kunt u de opdracht Zoeken gebruiken om bestanden van een bepaalde grootte te lokaliseren. Zeg, bijvoorbeeld, u wilt gaan groot en zoek bestanden die meer dan 1000MB. Het find commando kan worden uitgegeven met behulp van de-size optie, zoals:
find / -size +1000MB
Het zal je misschien verbazen hoeveel bestanden er verschijnen., Met de output van de opdracht, kunt u kam door de directory structuur en ruimte vrij te maken of problemen op te lossen om erachter te komen wat er op mysterieuze wijze het vullen van uw schijf.
U kunt zoeken met de volgende afmetingen beschrijvingen:
-
c – bytes
-
k – Kb
-
M – Mb
-
G – Gigabyte
-
b – 512-byte blokken
Blijven leren
We hebben alleen krassen op het oppervlak van de opdracht, maar je hebt nu een fundamenteel begrip van hoe om bestanden op uw Linux-systemen., Zorg ervoor dat de command man vinden om een diepere, vollediger, kennis van hoe u deze krachtige tool werk voor u te krijgen.
leer meer over Linux via de gratis” Introduction to Linux ” cursus van de Linux Foundation en edX.