Hur man hittar en fil efter namn i Linux

Hitta dina filer utan ansträngning från kommandoraden i Linux

Användare försöker vanligtvis hitta en fil med hjälp av GUI. Men ibland blir det ett mycket tråkigt jobb att hitta en enskild fil i den enorma högen av filer på ditt system. Att hitta det på konventionellt sätt kan vara en tidskrävande uppgift. För att göra denna uppgift enklare erbjuder Linux vissa kommandon för att göra det här jobbet åt dig.

hitta är ett populärt kommando som används i Linux-system som kan hjälpa dig att söka efter olika filer baserat på deras namn, typ, tillägg, behörigheter, ägare etc.

I den här handledningen kommer vi att fokusera på att hitta filerna efter namn. Vi kommer att titta på de olika argument som kan användas med hitta kommando. Vi kommer också att lära oss om lokalisera kommando som också är ett snabbare sätt att söka efter filerna efter namn.

Syntax för hitta kommando

Använda hitta kommandot på ett korrekt sätt kan göra din uppgift lättare. Att hitta filer av en viss typ eller tillägg eller söka på namnet kommer att vara möjligt om du förstår den allmänna syntaxen för detta kommando väl.

Den allmänna syntaxen för hitta kommandot är som följer.

hitta [sökväg] [uttryck] [alternativ] [hitta_vad]

Jag har försökt att förenkla syntaxen för hitta kommando för att förstå kommandot bättre.

Låt oss titta på varje attribut i syntaxen för att få en uppfattning om betydelsen av var och en av dem.

Search_Path: Här kommer sökvägen där vi anger sökvägen varifrån vi vill att systemet ska börja söka efter filen. Kort sagt, startkatalogen för att starta sökningen anges.

Uttryck: Du kan ange sökmönstren för den specifika filen du söker.

alternativ: Du kan använda de tillgängliga alternativen som används med hitta kommando i detta utrymme.

hitta vad: I det här attributet anger du namnet eller en del av namnet på filen som ska sökas igenom.

Låt oss illustrera detta kommando med ett exempel.

hitta /home/gaurav/workspace -namn "källa.c"

I det här kommandot använder jag hitta kommando för att söka efter filen "source.c". Jag har bett specifikt att söka i "/home/gaurav/workspace"-sökvägen. Använda -namn alternativet låter mig söka i filen som anges av 'source.c'.

Detta är den enklaste demonstrationen för att använda hitta kommando.

Söker efter filer i den aktuella katalogen

Använda hitta kommandot i sin enklaste form är att söka efter dina filer i din nuvarande arbetskatalog.

hitta .

Detta kommando visar alla filer i din nuvarande arbetskatalog. Här är '.' betyder den 'aktuella arbetskatalogen'. Följande är utdata från min nuvarande arbetskatalog. Alla filer som finns i den här katalogen listas utan några filter

Produktion:

. ./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

För att söka efter en fil vars ungefärliga namn är känt, använd hitta kommando som visas nedan.

hitta . -namn [sträng_från_filnamn\*]

Exempel:

hitta . -namn sammanhang\*

Detta kommando söker efter filerna som innehåller strängen "kontext" i den.

Produktion:

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

Alla filer i den aktuella katalogen listas som innehåller strängen "sammanhang" i den.

Nu uppstår problemet med det här kommandot när du försöker ta dig friheten om skiftlägeskänsligheten medan du skriver in filnamnet eller den ungefärliga strängen.

Linux är ganska försiktig med skiftlägeskänslighet och därför finns det en god chans att din sökning kan misslyckas. Jag kommer inte att få utdata för find-kommandot om jag använder strängen som 'CONTEXT' istället för 'context'. Även om en enstaka bokstav i filnamnet är i ett annat fall än det ursprungliga filnamnet då, kommer sökningen att misslyckas.

Men du behöver inte oroa dig för det. Du kan helt enkelt byta ut -namn alternativet med -iname. Detta gör att du kan söka efter filerna oavsett i vilka fall deras namn är. Gör bara denna enkla ändring i ditt kommando och du kommer att bli bra.

hitta . -iname CONT\*

Utgången blir densamma även om jag har använt strängen i versaler.

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

Söker efter filer i olika kataloger

Du kan enkelt söka efter filerna i vilken katalog som helst på Linux-systemet, oavsett vilken katalog du för närvarande arbetar i.

hitta [katalogsökväg] -iname [specifikt_filnamn]

Exempel:

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

Här har jag sökt efter en specifik fil 'ath.html' och inte efter liknande filer som denna sträng. Så utdata kommer bara att vara den specifika filen som nämnts ovan.

/home/gaurav/tomcat/ath.html

Anta nu att vi inte känner till det fullständiga filnamnet utan bara strängen för detta filnamn. Sedan kan vi söka i filerna på följande sätt.

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

Detta kommando kommer att söka efter alla filer som innehåller strängen "ath" i början. Jag har använt -iname alternativet här, så jag behöver inte oroa mig för skiftlägeskänsligheten.

Produktion:

/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

Du kan också använda kommandot för att söka i flera filer som slutar med ett liknande tillägg i deras namn.

Exempel:

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

Kommandot kommer att söka efter alla filer i den angivna katalogen som innehåller .c som filnamnstillägg.

Produktion:

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

Vi lärde oss om hitta kommandot för att söka efter filerna som anges av filnamnet. Låt oss nu utforska ytterligare ett kommando som är snabbare än det konventionella hitta kommando.

lokalisera kommandoöversikt

Det finns ytterligare ett kommando för att söka efter filerna på ditt system som är snabbare än hitta kommando. Det är lokalisera kommando. Detta kommando är inte förinstallerat på Linux-distributionerna. Du kan använda följande steg för att ladda ner och installera lokalisera kommandopaket till ditt system.

För Ubuntu och Debian-system, använda sig av:

sudo apt uppdatering sudo apt installera mlocate

För Cent Os och Fedora-system, använda sig av:

sudo yum installera mlocate

Kommandot locate söker efter filen enligt det givna mönstret i inmatningen. lokalisera använder databasfilen för att söka efter filerna, denna databasfil genereras av uppdateradb kommando.

sudo uppdateradb

Tiden det tar att uppdatera denna databasfil kan variera från användare till användare beroende på filerna på ditt system.

Använda lokalisera kommando

Du kan använda lokalisera kommandot på följande sätt. Se till att uppdatera din databasfil med kommandot sudo uppdateradb.

Syntax:

hitta [filnamn_eller_del_av_filnamn]

Detta kommando kommer att starta sökningen från rotkatalogen. Det kommer att returnera listan över alla filer på systemet som innehåller filnamnet eller en del av filnamnet enligt kommandot.

Exempel:

hitta copy.c

Produktion:

/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

Den markerade raden visar att den exakta filen 'copy.c' hittas. Tillsammans med detta resultat visas även vissa andra filer som innehåller "copy.c" som en del av deras filnamn.

För att undvika röran med andra oönskade filer och bara hitta den önskade filen, kan du använda kommandot locate på följande sätt.

lokalisera -b '\filnamn'

Exempel:

lokalisera -b '\copy.c'

Produktion:

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

Den specifika filen som nämns i sökkriterierna listas tillsammans med sökvägen till katalogen där den finns.

Använda lokalisera kommandot kan verka lite knepigt, men är en snabbare metod att söka efter filer när du inte vet den exakta platsen för den filen. Hämtning av filerna går supersnabbt när du har uppdaterat databasfilen som kommandot locate använder.

Slutsats

I den här korta handledningen lärde vi oss om två viktiga kommandon, hitta och lokalisera. Nu kan du enkelt söka efter filer på ditt system utan att gå vilse i högen med filer. Att använda dessa kommandon kommer säkert att visa sig tidsbesparande och effektivt för din uppgift att söka efter filer.