Bestanden en mappen vinden in Linux via de opdrachtregel
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 het Find-commando
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 zijn submappen die voldoen aan de opgegeven zoekcriteria. U kunt zoeken op bestanden op naam, eigenaar, groep, type, rechten, datum en andere criteria.
Typ de volgende opdracht bij de prompt en geeft een overzicht van alle bestanden in de huidige map.
vind .
De stip na "vinden" geeft de huidige map aan.
Om bestanden te vinden die overeenkomen met een specifiek patroon, gebruikt u de -naam
argument. U kunt meta-tekens voor bestandsnamen gebruiken (zoals *
), maar je moet een escape-teken plaatsen ( \
) vóór elk van hen of sluit ze tussen aanhalingstekens in.
Als we bijvoorbeeld alle bestanden willen vinden die beginnen met "pro" in de map Documenten, gebruiken we de cd Documenten /
opdracht om naar de map Documenten te gaan en typ de volgende opdracht:
vind . -name pro \ *
Alle bestanden in de huidige map beginnend met "pro" worden weergegeven.
OPMERKING: de opdracht find is standaard hoofdlettergevoelig. Als u wilt dat de zoekopdracht naar een woord of woordgroep hoofdletterongevoelig is, gebruikt u de -ik noem
optie met de opdracht find. Het is de niet-gevoelige versie van het -naam
commando.
Als vind
vindt geen bestanden die voldoen aan uw criteria, het produceert geen uitvoer.
De opdracht find heeft veel opties die beschikbaar zijn om de zoekopdracht te verfijnen. Voor meer informatie over de opdracht find, uitvoeren man vind
in een Terminal-venster en druk op Enter.
Gebruik de Locate Command
De locate-opdracht is sneller dan de opdracht find omdat deze een eerder gebouwde database gebruikt, terwijl de opdracht find in het echte systeem zoekt, 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 actuele 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.
zoek mijn gegevens op
Het bovenstaande commando vond bijvoorbeeld twee bestanden met "mijn gegevens" en één bestand met "gegevens".
Als u alle bestanden of mappen wilt vinden die exact en alleen uw zoekcriteria bevatten, gebruikt u de -b
optie met de opdracht locate, 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 ( ?
), wat staat voor één teken en de asterisk ( *
), wat staat voor een aaneengesloten reeks tekens. In het bovenstaande voorbeeld schakelt de backslash de impliciete vervanging van 'mijn gegevens' door '* mijn gegevens *' uit, zodat u alleen resultaten krijgt die 'mijn gegevens' bevatten.
De opdracht mlocate 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, verandert het binaire bestand / usr / bin / locate in point to mlocate. 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 het bestaat.
De opdracht mlocate gebruikt niet hetzelfde databasebestand als de standaardlocatieopdracht. Daarom wilt u misschien de database handmatig maken door de volgende opdracht bij de aanwijzing te typen:
sudo /etc/cron.daily/mlocate
De opdracht mlocate werkt pas als de database handmatig is gemaakt of als het script vanuit cron wordt uitgevoerd.
Typ voor meer informatie over de opdracht locate of de opdracht mlocate man lokaliseren
of man mlocate
in een Terminal-venster en druk op Enter. Hetzelfde helpscherm wordt voor beide opdrachten weergegeven.
Het gebruiken van het commando
De "which" -opdracht 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. Bijvoorbeeld het typen van de opdracht welke firefox
geeft de resultaten weer die in de onderstaande afbeelding worden getoond.
Standaard geeft de opdracht alleen het eerste overeenkomende uitvoerbare bestand weer. Als u alle overeenkomende uitvoerbare bestanden wilt weergeven, gebruikt u de -een
optie met de opdracht:
welke een firefox
U kunt in één keer zoeken naar meerdere uitvoerbare bestanden, zoals 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 wordt gebruikt, zoekt alleen naar de PATH-variabele van de huidige gebruiker. 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 de opdracht Whereis
De opdracht whereis wordt gebruikt om te achterhalen waar de binaire, bron- en manpaginabestanden voor een opdracht zich bevinden. Bijvoorbeeld typen waar is firefox
bij de prompt 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 -b
keuze. Bijvoorbeeld het commando waar is -b firefox
wordt alleen weergegeven / Usr / bin / firefox
als resultaat. Dit is handig, omdat u waarschijnlijk vaker naar het uitvoerbare bestand van een programma zoekt dan naar bron- en manpagina's voor dat programma. U kunt ook alleen naar de bronbestanden zoeken ( -s
) of alleen voor de man-pagina's ( -m
).
Typ. Voor meer informatie over de opdracht whereis man, waar is hij
in een Terminal-venster en druk op Enter.
Het verschil tussen het Whereis-commando en het commando begrijpen
De opdracht whereis geeft de locatie weer voor de binaire, bron- en man-pagina's voor een opdracht, terwijl de opdracht alleen de locatie van de binary voor de opdracht toont.
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 man-pagina'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 behulp van de -een
optie, eerder besproken, voor de opdracht.
Omdat de opdracht whereis alleen paden gebruikt die hard zijn gecodeerd in het commando, is het mogelijk dat u niet altijd vindt waarnaar u op zoek bent. Als u zoekt naar een programma waarvan u denkt dat het is geïnstalleerd in een map die niet op de man-pagina's staat voor de opdracht whereis, wilt u mogelijk de opdracht gebruiken met de opdracht -een
optie om alle exemplaren van de opdracht in het hele systeem te vinden.