Linux FIND-opdracht met voorbeelden

Weet u hoeveel bestanden er in een nieuwe Linux -installatie zitten ? Als u de PopOS! Linux-distributie(Linux distribution) als voorbeeld, er zijn meer dan 31.000 bestanden. Dat is voordat u begint met het maken van documenten, het opslaan van muziek, het downloaden van PDF's of het ordenen van afbeeldingen.

Hierdoor wordt het een uitdaging om het juiste bestand of de juiste map in Linux te vinden wanneer je het nodig hebt. In dit artikel leer je hoe je het Linux FIND- commando gebruikt, en we gaan je alle voorbeelden geven die we kunnen.

Linux FIND-opdrachtsyntaxis(Linux FIND Command Syntax)

Syntaxis verwijst naar hoe woorden of commando's worden samengesteld. Net(Just) zoals een normale zin onzin kan worden door de woorden gewoon te schudden, kunnen opdrachten mislukken als ze niet in de juiste syntaxis worden gebruikt.

vind [pad] [voorwaarden] [acties](find [path] [conditions] [actions])

Dit is wat dat betekent:

find - start het hulpprogramma Zoeken in (Find)Linux

pad(path ) – waar te zoeken

voorwaarden(conditions ) – argumenten die u op de zoekopdracht wilt toepassen

acties(actions ) - wat u wilt doen met de resultaten

Een eenvoudig voorbeeld waarin alle drie worden gebruikt, ziet er als volgt uit:

vind . -naam bestand-sample.rtf -print(find . -name file-sample.rtf -print)

Zoals je al geraden had, zal dit de bestandsnaam file-sample.rtf vinden(file-sample.rtf)

Het pad met de punt ( . ) vertelt find om in de huidige map en alle mappen erin te zoeken. 

De voorwaarde -name vertelt find om het bestand met die specifieke naam op te halen.

De actie -print vertelt FIND om de resultaten op het scherm weer te geven.

De punt en -print zijn standaardwaarden voor de opdracht find. Dus het zal nog steeds hetzelfde doen als je ze niet gebruikt. Dus, find -name file-sample.rtf geeft je dezelfde resultaten.

Linux VINDEN in een andere map(Linux FIND In Another Directory)

U kunt zoeken in een andere map dan die waarin u zich bevindt. Voer gewoon(Just) het pad naar de map in na FIND . Als je bij de root bent en je weet dat het bestand ergens in de home/user directory staat, zou je het volgende gebruiken:

find home/user -name file-sample.rtf

Het is nog steeds een recursieve zoekopdracht, dus het doorloopt elke map onder user .

Linux FIND Zoeken in meerdere mappen(Linux FIND Search Multiple Directories)

Als u in meerdere mappen tegelijk wilt zoeken, vermeld ze dan in de opdracht, gescheiden door een spatie.

find /lib /var /bin -name file-sample.rtf

Linux FIND zonder recursie of beperkende recursie(Linux FIND with No Recursion or Limiting Recursion)

Als u het bovenstaande FIND -commando op rootniveau zou gebruiken, zou het door elke map op het systeem kijken. Dus als u zich alleen bij de huidige map wilt houden, gebruikt u de optie -maxdepth . Het getal na -maxdepth vertelt Find hoe diep je moet gaan voordat je stopt. 

Het gebruik van -maxdepth 1(-maxdepth 1 ) betekent alleen deze map. 

find -name file-sample.rtf -maxdepth 1

Als u -maxdepth 2 of hoger gebruikt, betekent dit dat u zoveel niveaus dieper gaat.

find -maxdepth 5 -name file-sample.rtf

Linux FIND Wildcard Voorbeeld(Linux FIND Wildcard Example)

De opdracht FIND gebruikt de asterisk ( * ) als jokerteken. Gebruik het voor elk deel van de naam waar je niet zeker van bent. Het kan meer dan één keer in de naam worden gebruikt. Zonder het bestandstype als onderdeel van de bestandsnaam, zullen de resultaten ook mappen bevatten die overeenkomen.

find home/user -name file*sample*

Linux VINDEN op Type Voorbeeld(Linux FIND by Type Example)

Gebruik de optie -type en de juiste descriptor om alleen naar een bestand of een map te zoeken. Er zijn er een paar, maar de bestanden en mappen komen het meest voor:

f – bestand

d – map

b – apparaat blokkeren

c - karakterapparaat

l – symbolische link

s – stopcontact

find home/user -name file*sample* -type d

Linux FIND Hoofdletterongevoelig voorbeeld(Linux FIND Case Insensitive Example)

In tegenstelling tot Windows maakt Linux zich zorgen of een letter een hoofdletter of kleine letter is. Dus als je wilt dat het zoekt naar zowel File-Sample.rtf als file-sample.rtf, gebruik dan de -iname optie.

find home/user -iname File-Sample.rtf

Linux FIND Meerdere bestanden Voorbeeld(Linux FIND Several Files Example)

Stel dat u de .rtf- en .html-versies van een bestand wilt vinden. Dat kan in één commando met de -o (or) operator. In sommige distributies moet je de namen mogelijk tussen haakjes plaatsen, zoals ( -name file-sample.rtf -o -name file-sample.html )

find home/user -name file-sample.rtf -o -name file-sample.html

Linux FIND bestanden die niet overeenkomen met een naam(Linux FIND Files That Don’t Match a Name)

Misschien weet u dat er een .html - versie van een bestand is, maar niet als er andere zijn. U kunt de .html(.html) - versie uit de zoekopdracht filteren met de optie -not .

find home/user -name file-sample* -not -name *.html

Linux FIND zonder foutresultaten(Linux FIND Without Error Results)

In het voorbeeld van de vondst zonder recursie, merk op dat het elke directory vermeldde waarin het niet kon zoeken en het juiste resultaat. Dat is vervelend. Laten we stoppen met het tonen van al die " Toestemming(Permission) geweigerd"-mappen. Combineer het met een ander Linux-terminalcommando(Linux terminal command) , grep. Je kunt ook Zoeken(Find) met grep gebruiken om bestanden te zoeken met specifieke woorden erin(find files with specific words in them) .

find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”

Laten we 2>&1 opsplitsen .

2 – staat voor stderr , wat een afkorting is voor standaardfoutuitvoer. 

1 - staat voor stdout , wat een afkorting is voor standaarduitvoer

> – betekent om de output die zich links ervan bevindt om te leiden naar wat er rechts ervan staat.

& – betekent samenvoegen.

Dus 2>&1 betekent de standaardfouten nemen en ze omleiden, en ze vervolgens samen met de standaarduitvoer in één uitvoer plaatsen.

Laten we nu eens kijken naar | grep -v “Permission denied” .

| (een pijp genoemd) - vertelt Linux om de resultaten van wat zich links ervan bevindt, door te voeren naar wat zich rechts ervan bevindt. Het wordt doorgegeven aan het grep-commando.

grep - is een hulpprogramma voor het zoeken naar tekst. 

-v – vertelt grep om te zoeken naar iets dat niet overeenkomt met tekst links van de -v. In dit geval zegt het grep om alleen iets te vinden dat niet de tekst of tekenreeks ' Toestemming(Permission) geweigerd' bevat. Dus grep toont u alleen de resultaten waarnaar u op zoek bent en eventuele fouten die niet overeenkomen met " Toestemming(Permission) geweigerd".

Linux FIND met machtigingen Voorbeeld(Linux FIND by Permissions Example)

Om dit goed te gebruiken, moet je Linux-machtigingen leren(learn Linux permissions)

De voorbeeldbestanden hebben allemaal de machtigingen 664, behalve één met de machtigingen 775. Gebruik de optie -perm om deze te vinden.

find Documents/ -name file-sample* -type f -perm 775

Linux VINDEN op grootte Voorbeeld(Linux FIND by Size Example)

Het vinden van bestanden op grootte is handig om die enorme bestanden uw harde schijf te laten vullen. Gebruik de optie -size, de gewenste grootte en een van de volgende achtervoegsels. Als er geen achtervoegsel wordt gebruikt, wordt -size standaard ingesteld op b . Om bestanden te vinden die gelijk zijn aan en groter zijn dan een bepaalde grootte, plaatst u het plusteken (+) voor de grootte.

M – Megabytes

G – Gigabyte

k – Kilobytes

b – blokken (512 bytes – standaard)

c – bytes

w - woorden (twee bytes samen)

find -size +500k

Linux VINDEN door eigenaar(Linux FIND by Owner)

Er zijn twee manieren om bestanden op eigenaar te vinden. De ene is door de gebruikersnaam van een eigenaar en de andere is door de groep van de gebruiker. Gebruik de optie -user om op gebruikersnaam te zoeken , gevolgd door de gebruikersnaam. Gebruik -group gevolgd door de groepsnaam om te zoeken op gebruikersgroep.

zoek -user groepsnaam(find -user groupname ) of zoek -user gebruikersnaam(find -user username)

Linux FIND-bestanden volgens het laatst gewijzigde voorbeeld(Linux FIND Files by Last Modified Example)

Gebruik -mtime gevolgd door een getal om bestanden te vinden die in de afgelopen X dagen zijn gewijzigd of bewerkt. Als u een minteken ( ) voor het nummer plaatst, wordt alles binnen zoveel dagen voor nu veranderd. Een plusteken ( + ) betekent binnen zoveel dagen voor nu. 

find -name “file-sample*” -mtime +5 (greater than 5 days ago)

find -name “file-sample*” -mtime -5 (less than 5 days ago)

Om de laatste wijziging in minuten te vinden, gebruikt u de optie -mmin gevolgd door het aantal minuten. Gebruik de + en – zoals hierboven.

find -name “file-sample*” -mmin -5

find -name “file-sample*” -mmin +5

Linux FIND-bestanden op laatst geopende tijd Voorbeeld(Linux FIND Files by Last Accessed TIme Example)

De optie die wordt gebruikt om bestanden te vinden op basis van wanneer ze voor het laatst zijn geopend, is -atime voor dagen en -amin voor minuten. Volg het met het aantal dagen of minuten om terug te gaan en gebruik het + en – teken als groter dan en kleiner dan.

find -name “file-sample*” -atime -5

find -name “file-sample* -amin -5

Combineer FIND met andere Linux-opdrachten(Combine FIND with Other Linux Commands)

Er is hierboven één voorbeeld van het gebruik van find met het grep-commando, en je kunt het met vele andere gebruiken. Je kunt zien dat het gebruik van zoek- en andere commando's erg krachtig kan zijn en een enorme tijdwinst kan opleveren. Stel je(Imagine) voor dat je een heleboel van een bepaald type bestand moet verwijderen. In plaats van rond te zoeken in de bestandsverkenner, maakt u gewoon de juiste opdracht en het is binnen enkele seconden klaar. Hoe ga je nu de opdracht find gebruiken?



About the author

Hallo daar! Ik ben een computerprogrammeur met meer dan 10 jaar ervaring in het veld. Ik ben gespecialiseerd in het ontwikkelen en onderhouden van software voor smartphones en windows updates. Daarnaast bied ik mijn diensten aan als een maandelijkse ondersteuningsmedewerker voor e-mailclients.



Related posts