De meeste mensen gebruiken een grafische bestandsbeheerder om bestanden in Linux te vinden, zoals Nautilus in Gnome, Dolphin in KDE en Thunar in Xfce. Er zijn echter verschillende manieren om de opdrachtregel te gebruiken om bestanden in Linux te vinden, ongeacht welke desktopmanager u gebruikt.
Gebruik het zoekcommando
Met de opdracht “find” kunt u bestanden zoeken waarvan u de geschatte bestandsnamen kent. De eenvoudigste vorm van de opdracht zoekt naar bestanden in de huidige map en recursief door de submappen die voldoen aan de opgegeven zoekcriteria. U kunt bestanden zoeken op naam, eigenaar, groep, type, machtigingen, datum en andere criteria.
Als u de volgende opdracht bij de prompt typt, worden alle bestanden in de huidige map weergegeven.
find .
De punt na “find” geeft de huidige directory aan.
Om bestanden te vinden die overeenkomen met een specifiek patroon, gebruikt u de -name
argument. U kunt metatekens voor bestandsnamen gebruiken (zoals *
), maar je moet ofwel een escape-teken ( ) voor elk ervan of tussen aanhalingstekens.
Als we bijvoorbeeld alle bestanden willen vinden die beginnen met “pro” in de map Documenten, gebruiken we de cd Documents/
opdracht om naar de map Documenten te gaan en typ vervolgens de volgende opdracht:
find . -name pro*
Alle bestanden in de huidige directory die beginnen met “pro”, worden weergegeven.
OPMERKING: De opdracht find is standaard hoofdlettergevoelig. Als u wilt dat de zoekopdracht naar een woord of zin niet hoofdlettergevoelig is, gebruikt u de -iname
optie met het find commando. Het is de hoofdlettergevoelige versie van de -name
opdracht.
Als find
vindt geen bestanden die aan uw criteria voldoen, het produceert geen uitvoer.
Het zoekcommando heeft veel opties beschikbaar om de zoekopdracht te verfijnen. Voor meer informatie over de opdracht find, voer je uit man find
in een Terminal-venster en druk op Enter.
Met behulp van het lokaliseren commando
Het lokaliseercommando is sneller dan het zoekcommando omdat het een eerder gebouwde database gebruikt, terwijl het zoekcommando in het echte systeem door alle daadwerkelijke mappen en bestanden zoekt. Het lokaliseercommando retourneert een lijst met alle padnamen die de opgegeven groep tekens bevatten.
De database wordt periodiek bijgewerkt vanuit cron, maar u kunt deze ook op elk moment zelf bijwerken, zodat u tot op de minuut nauwkeurige resultaten kunt krijgen. Typ hiervoor de volgende opdracht bij de prompt:
sudo updatedb
Voer uw wachtwoord in wanneer daarom wordt gevraagd.
De basisvorm van het lokaliseercommando vindt alle bestanden in het bestandssysteem, beginnend bij de root, die alle of een deel van de zoekcriteria bevatten.
locate mydata
Met de bovenstaande opdracht zijn bijvoorbeeld twee bestanden gevonden die ‘mydata’ bevatten en één bestand met ‘data’.
Als u alle bestanden of mappen wilt vinden die exact en alleen uw zoekcriteria bevatten, gebruikt u de -b
optie met het lokaliseer commando, als volgt.
locate -b ‘mydata’
De backslash in de bovenstaande opdracht is een globbing-teken, dat een manier biedt om jokertekens in een niet-specifieke bestandsnaam uit te breiden naar een set specifieke bestandsnamen. Een jokerteken is een symbool dat kan worden vervangen door een of meer tekens wanneer de uitdrukking wordt geëvalueerd. De meest voorkomende jokertekens zijn het vraagteken ( ?
), wat staat voor een enkel teken en de asterisk ( *
), wat staat voor een aaneengesloten reeks tekens. In het bovenstaande voorbeeld schakelt de backslash de impliciete vervanging van “mydata” door “* mydata *” uit, zodat u alleen resultaten krijgt die “mydata” bevatten.
Het mlocate-commando is een nieuwe implementatie van lokaliseren. Het indexeert het volledige bestandssysteem, maar de zoekresultaten bevatten alleen bestanden waartoe de huidige gebruiker toegang heeft. Wanneer u de mlocate-database bijwerkt, houdt het tijdstempelinformatie in de database. Hierdoor kan mlocate weten of de inhoud van een map is gewijzigd zonder de inhoud opnieuw te lezen en worden updates van de database sneller en minder veeleisend voor uw harde schijf.
Wanneer u mlocate installeert, verandert het / usr / bin / localiseringsbestand zodat het naar mlocate verwijst. Om mlocate te installeren, typ je de volgende opdracht bij de prompt als het nog niet in je Linux-distributie is opgenomen.
sudo apt-get install mlocate
OPMERKING: We zullen u later in dit artikel een commando laten zien waarmee u kunt bepalen waar het uitvoerbare bestand voor een commando zich bevindt, als het bestaat.
Het mlocate-commando gebruikt niet hetzelfde databasebestand als het standaardlokalisatie-commando. Daarom wilt u de database wellicht handmatig maken door de volgende opdracht achter de prompt te typen:
sudo /etc/cron.daily/mlocate
De opdracht mlocate werkt niet totdat de database handmatig is gemaakt of wanneer het script wordt uitgevoerd vanuit cron.
Typ voor meer informatie over de opdracht find of mlocate man locate
of man mlocate
in een Terminal-venster en druk op Enter. Voor beide opdrachten wordt hetzelfde helpscherm weergegeven.
Met behulp van het welke commando
De “which” -opdracht retourneert het absolute pad van het uitvoerbare bestand dat wordt aangeroepen wanneer een opdracht wordt gegeven. Dit is handig bij het vinden van de locatie van een uitvoerbaar bestand voor het maken van een snelkoppeling naar het programma op het bureaublad, een paneel of een andere plaats in de bureaubladbeheerder. Typ bijvoorbeeld de opdracht which firefox
geeft de resultaten weer die in de onderstaande afbeelding worden weergegeven.
Het welke commando geeft standaard alleen het eerste overeenkomende uitvoerbare bestand weer. Om alle overeenkomende uitvoerbare bestanden weer te geven, gebruikt u de -a
optie met het commando:
which -a firefox
U kunt in één keer naar meerdere uitvoerbare bestanden zoeken, zoals weergegeven in de volgende afbeelding. Alleen de paden naar gevonden uitvoerbare bestanden worden weergegeven. In het onderstaande voorbeeld is alleen het uitvoerbare bestand “ps” gevonden.
OPMERKING: het commando welke zoekt alleen naar de PATH-variabele van de huidige gebruiker. Als u zoekt naar een uitvoerbaar bestand dat alleen beschikbaar is voor de rootgebruiker als normale gebruiker, worden er geen resultaten weergegeven.
Voor meer informatie over welke opdracht, typ je “man which” (zonder de aanhalingstekens) bij de opdrachtprompt in een Terminal-venster en druk je op Enter.
Met behulp van het Whereis-commando
Het whereis-commando wordt gebruikt om erachter te komen waar de binaire bestanden, de broncode en de manpaginabestanden voor een commando zich bevinden. Bijvoorbeeld typen whereis firefox
bij de prompt worden resultaten weergegeven zoals weergegeven in de volgende afbeelding.
Als u alleen het pad naar het uitvoerbare bestand wilt weergeven, en niet de paden naar de bron- en de man (ual) pagina’s, gebruik dan de -b
keuze. Bijvoorbeeld het commando whereis -b firefox
wordt alleen weergegeven /usr/bin/firefox
als resultaat. Dit is handig omdat u hoogstwaarschijnlijk vaker naar het uitvoerbare bestand van een programma zoekt dan naar de bron- en manpagina’s voor dat programma. U kunt ook zoeken naar alleen de bronbestanden ( -s
) of alleen voor de manpages ( -m
).
Typ voor meer informatie over de opdracht whereis man whereis
in een Terminal-venster en druk op Enter.
Het verschil begrijpen tussen het Whereis-commando en het welke-commando
Het whereis-commando toont je de locatie voor de binaire, source- en man-pagina’s voor een commando, terwijl het welke-commando je alleen de locatie van het binaire voor het commando laat zien.
Het commando whereis doorzoekt een lijst met specifieke mappen voor de binaire, bron- en man-bestanden, terwijl het commando de mappen doorzoekt die worden vermeld in de PATH-omgevingsvariabele van de huidige gebruiker. Voor het whereis commando kan de lijst met specifieke directories gevonden worden in de FILES sectie van de manpages voor het commando.
Als het gaat om resultaten die standaard worden weergegeven, geeft het commando whereis alles weer wat het vindt, terwijl het commando alleen het eerste uitvoerbare bestand weergeeft dat het vindt. U kunt dat wijzigen met de -a
optie, eerder besproken, voor het welke commando.
Omdat de opdracht whereis alleen paden gebruikt die hard gecodeerd zijn in de opdracht, vindt u mogelijk niet altijd wat u zoekt. Als u op zoek bent naar een programma waarvan u denkt dat het is geïnstalleerd in een map die niet wordt vermeld in de man-pagina’s voor het whereis-commando, wilt u misschien het which-commando gebruiken met de -a
optie om alle exemplaren van de opdracht in het hele systeem te vinden.