Bestanden vinden op een Linux-systeem kan moeilijk zijn als u niet weet hoe. De beste manier om bestanden op Linux te vinden, is door een paar terminalopdrachten te gebruiken. Als u enkele van deze commando's onder de knie hebt, kunt u volledige controle over bestanden krijgen, en ze zijn nuttiger dan de eenvoudige zoekfuncties van andere besturingssystemen.
Stap
Methode 1 van 3: "vinden" gebruiken
Stap 1. Zoek naar bestanden op naam
Dit type zoekopdracht is de meest eenvoudige en u kunt dit doen met de opdracht find. De onderstaande opdracht voert een zoekopdracht uit op basis van het woord dat is ingevoerd in de directory waarin u zich bevindt en de subdirectories erin.
find -iname "bestandsnaam"
Als u -iname gebruikt in plaats van -name, heeft het verschil tussen trefwoorden in hoofdletters en kleine letters geen effect. De opdracht -name beschouwt hoofdletters en kleine letters als verschillende tekens
Stap 2. Stel de zoekopdracht in om te starten in de hoofdmap
Als u een systeembrede zoekopdracht wilt uitvoeren, kunt u de / modifier aan het trefwoord toevoegen. De modifier vertelt het find-commando om grondig te zoeken, beginnend vanuit de hoofdmap.
find / -iname "bestandsnaam"
- U kunt een zoekopdracht starten in een specifieke directory door de / modifier te vervangen door het directorypad, bijvoorbeeld /home/pat.
- Je kunt gebruiken. anders dan / zodat zoekopdrachten alleen worden uitgevoerd binnen de directory waarin u zich bevindt en ook de subdirectories erin.
Stap 3. Gebruik jokertekens
* om te zoeken naar iets dat gedeeltelijk overeenkomt met uw zoekwoorden.
Het jokerteken * kan worden gebruikt om bestanden te vinden waarvan u de volledige naam niet weet, of als u alle bestanden met een specifieke extensie wilt vinden.
zoek /home/pat -iname "*.conf"
- De bovenstaande opdracht retourneert alle.conf-bestanden in de gebruikersdirectory met de naam Pat (evenals de subdirectories daarin).
- U kunt het ook gebruiken om iets te vinden waarvan de naam gedeeltelijk overeenkomt met dat trefwoord. Als je bijvoorbeeld veel documenten hebt die gerelateerd zijn aan wikiHow, kun je ze vinden door "*wiki*" te typen.
Stap 4. Maak zoekresultaten gemakkelijker te beheren
Als de zoekresultaten te veel zijn, zal het moeilijk voor u zijn om het gewenste bestand te vinden. Gebruik het teken | en stuur de zoekresultaten terug naar het "minder" filterprogramma. Zo kun je makkelijker door de zoekresultaten scrollen en filteren.
zoek /home/pat -iname "*.conf" | minder
Stap 5. Zoek zoekresultaten met een specifiek type
U kunt modifiers gebruiken om alleen bepaalde soorten resultaten te retourneren. U kunt zoeken naar reguliere bestanden (f), mappen (d), symbolische koppelingen (l), tekenapparaten (c) en blokapparaten (b) met behulp van de juiste modificaties.
find / -type f -iname "bestandsnaam"
Stap 6. Filter de zoekresultaten op grootte
Als u veel bestanden met vergelijkbare namen hebt, maar de grootte van het gewenste bestand weet, kunt u de zoekopdracht filteren op grootte.
find / -size +50M -iname "bestandsnaam"
- De bovenstaande opdracht retourneert zoekresultaten van 50 megabyte of meer. U kunt + of - gebruiken om te zoeken naar bestanden met een groter of kleiner formaat. Als u het + of - teken weglaat, levert de zoekopdracht alleen resultaten op met de echt "juiste" grootte.
- U kunt de zoekopdracht filteren op bytes (c), kilobytes (k), megabytes (M), gigabytes (G) of 512 bytes (b) blokken. Houd er rekening mee dat de markeringen onderscheid maken tussen hoofdletters en kleine letters.
Stap 7. Gebruik booleaanse operatoren om zoekfilters te combineren
U kunt de operators -en, -or en -not gebruiken om verschillende zoekopdrachten te combineren.
find /travelphotos -type f -size +200k -not -iname "*2015*"
De bovenstaande opdracht zoekt naar bestanden in de map "reisfoto's" die groter zijn dan 200 kilobytes, maar die het woord "2015" niet in hun naam hebben
Stap 8. Voer een bestandszoekopdracht uit op naam van de eigenaar of per toestemming
Als u een specifiek bestand probeert te vinden dat aan een specifieke gebruiker toebehoort, of een bestand met bepaalde machtigingen zoekt, kunt u de zoekopdracht verfijnen.
find / -user pat -iname "bestandsnaam" find / -group gebruikers -iname "bestandsnaam" find / -perm 777 -iname "bestandsnaam"
De bovenstaande voorbeelden voeren een zoekopdracht uit naar een specifieke gebruiker, groep of toestemming binnen een trefwoord. U kunt de bestandsnaam ook weglaten om alle bestanden terug te geven die met dat type overeenkomen. Zoek / -perm 777 zal bijvoorbeeld alle bestanden met 777-machtigingen retourneren (geen beperkingen)
Stap 9. Voeg de opdrachten samen om de actie uit te voeren wanneer het bestand is gevonden
U kunt de opdracht find combineren met andere opdrachten, zodat u bestanden kunt verwerken die op trefwoord met die opdracht zijn geretourneerd. Scheid de opdracht find en de tweede opdracht met de vlag -exec en beëindig de regel met {};
vind. -type f -perm 777 -exec chmod 755 {};
De bovenstaande opdracht doorzoekt de map waarin u zich bevindt (en alle submappen daarin) naar bestanden met machtigingen voor 777. Vervolgens zal de chmod-opdracht de machtigingen wijzigen in 755
Methode 2 van 3: "Lokaliseren" gebruiken
Stap 1. Installeer
bevind zich functionaliteit. De opdracht location is over het algemeen sneller dan de opdracht find, vanwege het databasegebruik van uw bestandssysteem. Niet alle typen Linux zijn uitgerust met een locatiefunctie, dus voer het volgende commando in om het te installeren:
- Typ sudo apt-get update en druk vervolgens op Enter.
- U kunt het op Debian en ubuntu als volgt installeren: Typ sudo apt-get install mlocate en druk vervolgens op Enter. Als de locatiefunctie eerder is geïnstalleerd, ziet u de melding mlocate is al de nieuwste versie.
- Gebruik op Arch Linux pacman package manager: pacman -Syu mlocate
- Gebruik voor Gentoo emerge: emerge mlocate
Stap 2. Bijwerken
bevind zich database Jij. De lokatie-opdracht kan niets vinden totdat deze is gemaakt en bijgewerkt. Het proces wordt meestal elke dag automatisch uitgevoerd, maar u kunt het ook handmatig bijwerken. Dit moet u doen als u de lokaliseringsfunctie zo snel mogelijk wilt gebruiken.
Typ sudo updatedb en druk vervolgens op Enter
Stap 3. Gebruik de
bevind zich om een eenvoudige zoekopdracht uit te voeren.
De functie lokaliseren werkt snel, maar heeft niet zoveel opties als de opdracht find. U kunt op dezelfde manier zoeken naar bestanden als met de opdracht find.
zoek -i "*.jpg"
- De bovenstaande opdracht doorzoekt het hele systeem naar bestanden met de extensie.jpg. Het jokerteken * werkt op dezelfde manier als de opdracht find.
- Net als de opdracht find, maakt de modifier -i ook hoofdletters en kleine letters in trefwoorden die als hetzelfde worden beschouwd.
Stap 4. Beperk zoekresultaten
Als uw zoekopdracht zoveel resultaten oplevert dat u ze moeilijk kunt gebruiken, kunt u die resultaten verkleinen met de -n-modifier, gevolgd door het aantal resultaten dat u wilt retourneren.
zoek -n 20 -i "*.jpg"
- Er worden slechts 20 zoekresultaten weergegeven.
- U kunt ook |. gebruiken om zoekresultaten naar het minder filterprogramma te sturen om gemakkelijker door de resultaten te bladeren.
Methode 3 van 3: Zoeken naar tekst in bestanden
Stap 1. Gebruik het commando
grep om de tekststring in het bestand te vinden.
Als u op zoek bent naar een bestand dat een specifieke zin of tekenreeks bevat, kunt u de opdracht grep gebruiken. Het basis commando grep heeft het volgende formaat:
grep -r -i "zoekopdracht" /pad/naar/map/
- De -r modifier maakt de zoekopdracht "recursief", dus er zal een zoekopdracht worden uitgevoerd binnen de directory en alle subdirectories daarin om bestanden te vinden die tekst bevatten met het zoekwoord.
- De -i modifier geeft aan dat het zoekwoord geen onderscheid maakt tussen hoofdletters en kleine letters. Als u de zoekopdracht wilt forceren om onderscheid te maken tussen hoofdletters en kleine letters, negeert u de -i-modifier.
Stap 2. Verwijder overtollige tekst
Wanneer u een grep-zoekopdracht uitvoert zoals hierboven, ziet u de bestandsnaam met de overeenkomende letters gemarkeerd. U kunt de overeenkomende tekst verbergen en alleen de naam en het pad van de bestandsmap weergeven door toe te voegen:
grep -r -i "zoekwoord" /pad/naar/map/ | knippen -d: -f1
Stap 3. Verberg de foutmelding
Het grep-commando retourneert een fout bij een poging om toegang te krijgen tot een map zonder de juiste machtigingen of bij het invoeren van een lege map. U kunt foutmeldingen naar /dev/null sturen zodat ze niet verschijnen.
grep -r -i "zoekwoord" /pad/naar/map/ 2>/dev/null