28Jun

Bestanden en mappen vinden in Linux via de opdrachtregel

click fraud protection

De meeste mensen gebruiken een grafisch bestandsbeheer 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 van de Find-opdracht

Met de opdracht "find" kunt u zoeken naar bestanden waarvan u de geschatte bestandsnamen kent. De eenvoudigste vorm van de opdracht zoekt naar bestanden in de huidige map en recursief via de submappen die overeenkomen met de opgegeven zoekcriteria. U kunt zoeken op bestanden op naam, eigenaar, groep, type, rechten, datum en andere criteria.

Als u de volgende opdracht bij de prompt typt, worden alle bestanden in de huidige map weergegeven.

vinden.

De stip na "vinden" geeft de huidige map aan.

Gebruik het argument -name om bestanden te vinden die overeenkomen met een specifiek patroon. U kunt meta-tekens voor bestandsnamen gebruiken( zoals *), maar u moet ofwel een escape-teken( \) voor elk van hen plaatsen of ze tussen aanhalingstekens plaatsen.

instagram viewer

Als we bijvoorbeeld alle bestanden willen vinden die beginnen met "pro" in de map Documenten, gebruiken we de opdracht cd Documents / om naar de map Documenten te gaan en typen we de volgende opdracht:

find.-name pro \ *

Alle bestanden in de huidige map beginnend met "pro" worden weergegeven.

OPMERKING: De opdracht find is standaard hoofdlettergevoelig. Als u wilt dat het zoeken naar een woord of woordgroep hoofdletterongevoelig is, gebruikt u de optie -iname met de opdracht find. Het is de niet-gevoelige versie van de opdracht -name.

Als zoeken geen bestanden vindt die voldoen aan uw criteria, produceert het geen uitvoer.

De opdracht find heeft veel opties die beschikbaar zijn om de zoekopdracht te verfijnen. Voor meer informatie over de opdracht find, zoekt u man in een terminalvenster en drukt u op Enter.

Gebruik van de opdracht Locate

De opdracht locate is sneller dan de opdracht find omdat deze een eerder gebouwde database gebruikt, terwijl de opdracht find wordt gezocht in het echte systeem, via alle daadwerkelijke mappen en bestanden. De opdracht locate retourneert een lijst met alle padnamen die de opgegeven groep tekens bevatten.

De database wordt periodiek bijgewerkt vanaf cron, maar u kunt deze ook op elk gewenst moment bijwerken, zodat u de allernieuwste resultaten kunt verkrijgen. Hiertoe typt u de volgende opdracht bij de aanwijzing:

sudo updatedb

Voer uw wachtwoord in wanneer daarom wordt gevraagd.

De basisvorm van de opdracht locate vindt alle bestanden in het bestandssysteem, beginnend bij de root, die alle of een deel van de zoekcriteria bevatten.

locate mydata

Bijvoorbeeld, de bovenstaande opdracht vond twee bestanden met "mijn gegevens" 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 methet locate-commando, als volgt.

locate -b '\ mydata'

De backslash in de bovenstaande opdracht is een globping-teken, dat een manier biedt om jokertekens in een niet-specifieke bestandsnaam uit te breiden tot een reeks 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 jokertekensymbolen zijn het vraagteken( ?), Dat staat voor een enkel teken en het sterretje( *), dat 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 locate. Het indexeert het volledige bestandssysteem, maar de zoekresultaten bevatten alleen bestanden waartoe de huidige gebruiker toegang heeft. Wanneer u de mlocate-database bijwerkt, wordt de tijdstempelinformatie in de database bewaard. Hierdoor kan mlocate weten of de inhoud van een directory is gewijzigd zonder de inhoud opnieuw te hoeven lezen en worden updates van de database sneller en minder veeleisend gemaakt op uw harde schijf.

Wanneer u mlocate installeert, lokaliseert de /usr/bin/ binaire bestandswijzigingen om naar miocate te wijzen. Om mlocate te installeren, als dit nog niet is opgenomen in je Linux-distributie, typ je de volgende opdracht bij de prompt.

sudo apt-get install mlocate

OPMERKING: We zullen u later in dit artikel een opdracht tonen waarmee u kunt bepalen waar het uitvoerbare bestand voor een opdracht zich bevindt, als dit bestaat.

De opdracht mlocate gebruikt niet hetzelfde databasebestand als de standaardlocatieopdracht. Daarom wilt u mogelijk de database handmatig maken door de volgende opdracht bij de aanwijzing te typen:

sudo /etc/cron.daily/ mlocate

De opdracht mlocate werkt niet totdat de database handmatig wordt gemaakt of wanneer het script wordt uitgevoerd vanaf cron.

Typ voor meer informatie over de locate- of de mlocate-opdracht man locate of man mocate in een Terminal-venster en druk op Enter. Hetzelfde helpscherm wordt voor beide opdrachten weergegeven.

Het commando Which gebruiken

Het commando "which" retourneert het absolute pad van het uitvoerbare bestand dat wordt aangeroepen wanneer een opdracht wordt uitgegeven. 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, op een paneel of op een andere plaats in de Desktop Manager. Typ bijvoorbeeld de opdracht firefox geeft de resultaten weer die in de onderstaande afbeelding worden getoond.

Standaard geeft de opdracht alleen het eerste overeenkomende uitvoerbare bestand weer. Om alle overeenkomende uitvoerbare bestanden weer te geven, gebruikt u de optie -a met de opdracht:

die -een firefox

is U kunt met meerdere tegelijk naar meerdere uitvoerbare bestanden zoeken, zoals wordt weergegeven in de volgende afbeelding. Alleen de gevonden paden naar uitvoerbare bestanden worden weergegeven. In het onderstaande voorbeeld is alleen het uitvoerbare bestand "ps" gevonden.

OPMERKING: De opdracht die alleen de PATH-variabele van de huidige gebruiker doorzoekt. Als u zoekt naar een uitvoerbaar bestand dat alleen voor de rootgebruiker beschikbaar is als een normale gebruiker, worden er geen resultaten weergegeven.

Voor meer informatie over de opdracht, typ "man which"( zonder de aanhalingstekens) achter de opdrachtprompt in een Terminal-venster en druk op Enter.

Gebruik van de opdracht Whereis

De opdracht whereis wordt gebruikt om uit te zoeken waar de binaire, bron- en manpaginabestanden voor een opdracht zich bevinden. Als u bijvoorbeeld whereis firefox bij de prompt typt, worden de 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, gebruikt u de optie -b. De opdracht whereis -b firefox geeft bijvoorbeeld alleen /usr/bin/ firefox als resultaat. Dit is handig, omdat u waarschijnlijk vaker naar een uitvoerbaar bestand van een programma zoekt dan naar bron- en manpagina's voor dat programma. U kunt ook alleen de bronbestanden( -s) of alleen de man-pagina's( -m) zoeken.

Typ man where in een Terminal-venster en druk op Enter voor meer informatie over de opdracht whereis.

Het verschil tussen de Whereis-opdracht en de opdracht

begrijpen De opdracht whereis geeft de locatie voor de binaire, bron- en man-pagina's van een opdracht weer, terwijl de opdracht alleen de locatie van de binary voor de opdracht aangeeft.

De opdracht whereis zoekt in een lijst met specifieke mappen voor de binaire, bron- en man-bestanden, terwijl de opdracht de doorzoekt in de mappen die worden vermeld in de PATH-omgevingsvariabele van de huidige gebruiker. Voor de opdracht whereis is de lijst met specifieke mappen te vinden in de sectie BESTANDEN van de manpagina's voor de opdracht.

Als het gaat om resultaten die standaard worden weergegeven, geeft de opdracht whereis alles weer dat wordt gevonden, terwijl de opdracht alleen het eerste uitvoerbare bestand weergeeft dat wordt gevonden. U kunt dat wijzigen met de optie -een eerder besproken optie voor de opdracht.

Omdat de opdracht whereis alleen paden gebruikt die hard zijn gecodeerd in het commando, zult u niet altijd vinden waarnaar u op zoek bent. Als u zoekt naar een programma waarvan u denkt dat het is geïnstalleerd in een map die niet wordt vermeld op de man-pagina's voor de opdracht whereis, wilt u mogelijk de opdracht gebruiken met de optie -a om alle exemplaren van de opdracht in het hele systeem te vinden.