Een bestand op naam zoeken in Linux

Vind uw bestanden moeiteloos vanaf de opdrachtregel in Linux

Gebruikers proberen meestal een bestand te vinden met behulp van de GUI. Soms wordt het echter een erg vervelende klus om een ​​afzonderlijk bestand te vinden in de enorme stapel bestanden op uw systeem. Het conventioneel vinden ervan kan een tijdrovende taak zijn. Om deze taak gemakkelijker te maken, biedt Linux bepaalde opdrachten om deze taak voor u uit te voeren.

vinden is een populaire opdracht die in de Linux-systemen wordt gebruikt en die u kan helpen bij het zoeken naar verschillende bestanden op basis van hun naam, type, extensie, machtigingen, eigenaar, enz.

In deze tutorial zullen we ons concentreren op het vinden van de bestanden op naam. We zullen kijken naar de verschillende argumenten die kunnen worden gebruikt met de vinden opdracht. We zullen ook leren over de bevind zich commando dat ook een snellere manier is om de bestanden op naam te zoeken.

Syntaxis voor vinden opdracht

De ... gebruiken vinden commando op de juiste manier kan uw taak gemakkelijker maken. Het vinden van de bestanden van een bepaald type of extensie of zoeken op naam is mogelijk als u de algemene syntaxis van deze opdracht goed begrijpt.

De algemene syntaxis voor de vinden commando is als volgt.

find [search_path] [expression] [opties] [find_what]

Ik heb geprobeerd de syntaxis van de . te vereenvoudigen vinden commando om het commando beter te begrijpen.

Laten we eens kijken naar elk attribuut van de syntaxis om een ​​idee te krijgen van de betekenis van elk van hen.

Zoekpad: Hier komt het pad waar we het pad specificeren van waaruit we willen dat het systeem begint met zoeken naar het bestand. Kortom, de startdirectory om de zoekopdracht te starten wordt gespecificeerd.

Uitdrukking: U kunt de zoekpatronen specificeren voor het specifieke bestand dat u zoekt.

Opties: U kunt de beschikbare opties gebruiken met de vinden commando in deze ruimte.

vind wat: Voer in dit attribuut de naam of een deel van de naam in van het bestand dat moet worden doorzocht.

Laten we deze opdracht illustreren met een voorbeeld.

zoek /home/gaurav/workspace -name "source.c"

In deze opdracht gebruik ik de vinden commando om te zoeken naar een bestand “source.c”. Ik heb specifiek gevraagd om te zoeken in het pad '/home/gaurav/workspace'. De ... gebruiken -naam optie stelt me ​​in staat om het bestand te doorzoeken dat is gespecificeerd door 'source.c'.

Dit is de eenvoudigste demonstratie voor het gebruik van de vinden opdracht.

Bestanden zoeken in de huidige map

De ... gebruiken vinden opdracht in zijn eenvoudigste vorm is om naar uw bestanden te zoeken in uw huidige werkmap.

vinden .

Met deze opdracht worden alle bestanden in uw huidige werkmap weergegeven. Hier de '.' betekent de 'huidige werkdirectory'. Hieronder volgt de uitvoer van mijn huidige werkmap. Alle bestanden in deze map worden weergegeven zonder filters

Uitgang:

. ./context_log.policy ./snap ./snap/couchdb ./snap/couchdb/current ./snap/eclipse ./snap/eclipse/current ./snap/vim-editor ./snap/vim-editor/current ./ snap/vim-editor/common ./snap/vim-editor/1 ./snap/htop ./snap/htop/current ./snap/htop/common ./snap/htop/common/.local ./snap/htop /common/.local/lib ./snap/htop/common/.local/lib/locale ./snap/htop/common/.local/lib/locale/en_IN.UTF-8 ./snap/htop/common/. local/lib/locale/en_IN.UTF-8/LC_CTYPE

Om te zoeken naar een bestand waarvan de naam bij benadering bekend is, gebruikt u de vinden commando zoals hieronder getoond.

vinden . -name [string_from_filename\*]

Voorbeeld:

vinden . -naam context\*

Dit commando zoekt naar de bestanden die de string ‘context’ bevatten.

Uitgang::

./context_log.policy ./context.xml ./context_preview.c

Alle bestanden in de huidige map worden weergegeven met daarin de tekenreeks 'context'.

Nu doet het probleem zich voor met deze opdracht wanneer u de vrijheid probeert te nemen over de hoofdlettergevoeligheid terwijl u de bestandsnaam of de geschatte tekenreeks intypt.

Linux is behoorlijk voorzichtig met de hoofdlettergevoeligheid en daarom is de kans groot dat uw zoekopdracht mislukt. Ik krijg geen uitvoer voor de opdracht find als ik de tekenreeks gebruik als 'CONTEXT' in plaats van 'context'. Zelfs als een enkele letter in de bestandsnaam in een ander geval is dan die van de originele bestandsnaam, zal het zoeken mislukken.

Maar u hoeft zich er geen zorgen over te maken. U kunt de -naam optie met de -ik noem. Hierdoor kunt u naar de bestanden zoeken, ongeacht in welke gevallen hun naam voorkomt. Breng gewoon deze eenvoudige wijziging aan in uw opdracht en het komt goed.

vinden . -iname CONT\*

De uitvoer zal hetzelfde zijn, zelfs als ik de tekenreeks in hoofdletters heb gebruikt.

./context_log.policy ./context.xml ./context_preview.c

Bestanden zoeken in verschillende mappen

U kunt eenvoudig naar de bestanden zoeken in elke map op het Linux-systeem, ongeacht de map waarin u momenteel werkt.

zoek [directory_path] -iname [specific_filename]

Voorbeeld:

zoek /home/gaurav/tomcat -iname ath.html

Hier heb ik gezocht naar een specifiek bestand 'ath.html' en niet naar soortgelijke bestanden als deze string. De uitvoer zal dus alleen het specifieke bestand zijn zoals hierboven vermeld.

/home/gaurav/tomcat/ath.html

Stel nu dat we niet de volledige bestandsnaam weten, maar alleen de tekenreeks van deze bestandsnaam. Dan kunnen we de bestanden op de volgende manier doorzoeken.

zoek /home/gaurav/tomcat -iname ath\*

Deze opdracht zoekt naar alle bestanden die aan het begin de tekenreeks 'ath' bevatten. ik heb de gebruikt -ik noem optie hier, dus ik hoef me geen zorgen te maken over de hoofdlettergevoeligheid.

Uitgang:

/home/gaurav/tomcat/ATHENIAN_ART.html /home/gaurav/tomcat/ath_things.html /home/gaurav/tomcat/ath.html /home/gaurav/tomcat/ATHENIAN_ART.pdf /home/gaurav/tomcat/ATHHHHhow.html

U kunt de opdracht ook gebruiken om meerdere bestanden te zoeken die eindigen op een vergelijkbare extensie in hun naam.

Voorbeeld:

zoek /home/gaurav/tomcat -iname "*.c"

De opdracht zoekt naar alle bestanden in de opgegeven map die .c als extensie in hun bestandsnaam bevat.

Uitgang::

/home/gaurav/tomcat/stiil.c /home/gaurav/tomcat/project/temp.c /home/gaurav/tomcat/copy.c /home/gaurav/tomcat/gy.c

We leerden over de vinden commando om te zoeken naar de bestanden die zijn gespecificeerd door de bestandsnaam. Laten we nu nog een commando verkennen dat sneller is dan het conventionele vinden opdracht.

bevind zich commando overzicht

Er is nog een opdracht om naar de bestanden op uw systeem te zoeken, die sneller is dan de vinden opdracht. Het is de bevind zich opdracht. Deze opdracht is niet vooraf geïnstalleerd op de Linux-distributies. U kunt de volgende stappen gebruiken om de . te downloaden en te installeren bevind zich command-pakket op uw systeem.

Voor Ubuntu- en Debian-systemen, gebruiken:

sudo apt update sudo apt install mlocate

Voor Cent Os- en Fedora-systemen, gebruiken:

sudo yum install mlocate

Het lokatie-commando zoekt naar het bestand volgens het gegeven patroon in de invoer. bevind zich gebruikt het databasebestand om naar de bestanden te zoeken, dit databasebestand wordt gegenereerd door de bijgewerktb opdracht.

sudo bijgewerktb

De tijd die nodig is om dit databasebestand bij te werken, kan van gebruiker tot gebruiker verschillen, afhankelijk van de bestanden op uw systeem.

De ... gebruiken bevind zich opdracht

U kunt de bevind zich commando op de volgende manier. Zorg ervoor dat u uw databasebestand bijwerkt met het commando sudo bijgewerktb.

Syntaxis:

zoek [bestandsnaam_of_part_of_bestandsnaam]

Met deze opdracht wordt de zoekopdracht gestart vanuit de hoofdmap. Het retourneert de lijst met alle bestanden op het systeem die de bestandsnaam of een deel van de bestandsnaam bevatten zoals gespecificeerd in de opdracht.

Voorbeeld:

zoek copy.c

Uitgang::

/home/gaurav/Downloads/git-2.23.0/copy.c /snap/core/9804/usr/lib/python3.5/__pycache__/copy.cpython-35.pyc /snap/core/9993/usr/lib /python3.5/__pycache__/copy.cpython-35.pyc /snap/core18/1880/usr/lib/python3.6/__pycache__/copy.cpython-36.pyc /snap/core18/1885/usr/lib/python3 .6/__pycache__/copy.cpython-36.pyc /snap/core20/634/usr/lib/python3.8/__pycache__/copy.cpython-38.pyc /usr/lib/python3.5/__pycache__/copy.cpython -35.pyc /usr/lib/python3.6/__pycache__/copy.cpython-36.pyc /usr/share/icons/MacBuntu-OS/apps/128/copy.com.png

De gemarkeerde regel geeft aan dat het exacte bestand 'copy.c' is gevonden. Naast dit resultaat worden ook bepaalde andere bestanden weergegeven die 'copy.c' als onderdeel van hun bestandsnaam bevatten.

Om de rommel van andere ongewenste bestanden te vermijden en alleen het gewenste bestand te vinden, kunt u de plaatscode op de volgende manier gebruiken.

zoek -b '\bestandsnaam'

Voorbeeld:

zoek -b '\copy.c'

Uitgang::

/home/gaurav/Downloads/git-2.23.0/copy.c

Het specifieke bestand dat in de zoekcriteria wordt genoemd, wordt vermeld samen met het pad van de map waarin het zich bevindt.

De ... gebruiken bevind zich commando lijkt misschien een beetje lastig, maar is een snellere methode om naar bestanden te zoeken als je de exacte locatie van dat bestand niet weet. Het ophalen van de bestanden gaat supersnel wanneer u het databasebestand hebt bijgewerkt dat door de locatie-opdracht wordt gebruikt.

Gevolgtrekking

In deze korte tutorial leerden we over twee belangrijke commando's, vinden en bevind zich. Nu kunt u gemakkelijk naar bestanden op uw systeem zoeken zonder te verdwalen in de stapel bestanden. Het gebruik van deze commando's zal zeker tijdbesparend en efficiënt zijn voor uw taak voor het zoeken naar bestanden.