Så här hittar du filer i Linux med kommandoraden

find är ett kommando för rekursivt filtrering av objekt i filsystemet baserat på en enkel villkorlig mekanism. Användfind för att söka efter en fil eller katalog i filsystemet. Med flaggan-exec kan filer hittas och omedelbartbearbetas inom samma kommando.,

Find Linux Files by Name or Extension

Use find from the command line to locate a specific file by name or extension., Följande exempel söker efter *.err filer i katalogen /home/username/ och alla underkataloger:

find /home/username/ -name "*.err"

Du bör se en liknande utmatning i konsolen:

 /home/username/example.errThe matching file in the /home/username/ directory is "example.err"

Common Linux Find common Commons and Syntax

följande exempel söker efter *.err filer i katalogen/home/username/find kommandot tar vanligtvis följande form:

find options starting/path expression
  • attributet options styr beteende-och optimeringsmetoden för find – processen.,
  • attributetstarting/path definierar toppnivåkatalogen därfind börjar filtrera.
  • attributetexpression styr de tester som söker i kataloghierarkin för att producera utdata.

hitta en fil i Linux med filnamnet

för att hitta en fil med filnamnet, använd syntaxenfind -name filename. Utelämna sökvägen söker efter filen över hela disken., Du kan till exempel hitta en fil med namnet example.err som finns i katalogen /home/username med följande kommando:

find -name example.err

Du bör se en liknande utmatning:

 ./username/example.err

hitta en fil i din nuvarande katalog med hjälp av kommandot Sök

ta en titt på exemplet katalogstruktur och filer. De hänvisas till i hela denna guides exempel.,vill du hitta filen example.err i katalogen eller någon av dess underkataloger kan du utfärda följande kommando:

find . -name example.err

din utmatning liknar följande:

 ./example.err./directory_1/example.err

utmatningen återspeglar directory_1 katalogstruktur:

 ./example.err./directory_1/example.err

utmatningen återspeglardirectory_1katalogstruktur:

hitta bildfiler i Linux med kommandoraden

referera till filstrukturen i föregående avsnitt, det finns en bild som heter image01.png som ligger vid roten (/) s i katalogstrukturen.,

för att hitta filenimage01.png, kör följandefind kommando som lokaliserar alla.png filer som lagras i katalogen/.

find -name *.png

Du bör se en liknande utgång:

 ./image01.png

ändra bildfiltyp och leta efter alla .jpg filer i rotkatalogen (/):

find -name *.jpg
find -name *.jpg

utgången liknar exemplet., Se exempelkatalogen i föregående avsnitt för att visa filens plats.

 ./web_files/unnamed.jpg

hitta en tom fil i katalogen med kommandoraden

för att hitta en tom fil i katalogen med kommandoraden, skriv följande kommando:

find . -type f -empty

om Ingen utmatning returneras finns det ingen tom fil i den aktuella katalogen.

alternativ och optimeringar för att hitta filer i Linux med kommandoraden

standardkonfigurationen förfind ignoressymbolic länkar., Om du vill att find ska följa och returnera symboliska länkar, Lägg till alternativet -L till kommandot, som visas nedan:

find -O3 -L /var/www/ -name "*.html"

det här kommandot möjliggör maximal optimeringsnivå (-O3) och tillåter find för att följa symboliska länkar (-L). find söker igenom hela katalogträdet under/var/www/ för filer som slutar med.html.,

find optimerar filtreringsstrategin för att öka prestandan. Tre användarvalbara optimeringsnivåer anges som -O1, -O2 och -O3. Den-O1 optimering är standard och tvingarfind att filtrera baserat på filnamn innan du kör alla andra tester.,

optimering på-O2 nivå prioriterar filename filter, som i-O1, och kör sedan alla filtyp filtrering innan du fortsätter med andra mer resurskrävande förhållanden. Nivå -O3 optimering tillåter find att utföra den allvarligaste optimering och inordnar alla tester baserat på deras relativa bekostnad och sannolikheten för deras framgång.,

Command Description
-O1 Filter based on filename first (default).
-O2 File name first, then file-type.,
-O3 Tillåtfind att automatiskt beställa sökningen baserat på effektiv användning av resurser och sannolikhet. tr> -maxdepth X Sök aktuell katalog samt alla underkataloger X nivåer djupt.
-iname Sök utan hänsyn till textfall.,
-not Return only results that do not match the test case.
-type f Search for files.
-type d Search for directories.,

hitta filer i Linux genom att ändra tiden med kommandoraden

kommandotfind kan filtrera en kataloghierarki baserat på när en fil senast ändrades., Till exempel hittar följande kommando en fil med .err – tillägget som har ändrats under de senaste 7 dagarna:

find / -name "*err" -mtime -7

kommandot exempel returnerar följande utmatning:

använd Grep för att hitta filer i Linux med kommandoraden

kommandot find kan bara filtrera kataloghierarkin baserat på en fils namn och metadata. Om du behöver söka baserat på innehållet i filen, använd ett verktyg somgrep., Tänk på följande exempel:

find . -type f -exec grep "test" '{}' \; -print

det här kommandot söker efter varje objekt i den aktuella kataloghierarkin (.) som är en fil (-type f) och kör sedan kommandotgrep "test" för varje fil som uppfyller villkoren. Filerna som matchar skrivs ut på skärmen (-print). De lockiga hängslen ({}) är en platshållare för sökmatchningsresultaten., {} är inneslutna i enstaka citat (') för att undvika att lämna grep ett felaktigt filnamn. Kommandot-exec avslutas med ett semikolon (;), vilket bör undvikas (\;) för att undvika tolkning av skalet.

filen som används i exemplet (example.err) har text inuti den som säger ”test”., När du kör kommandot exempel ser du en liknande utmatning:

Grep identifierade varje fil i den aktuella arbetskatalogen som innehåller strängen ”test”.,

notera

innan kommandotfind implementerar alternativet-exec kan du skapa en liknande utmatning till exemplet ovan med kommandotxargs:

find . -type f -print | xargs grep "test"

bearbeta och hitta filer med kommandot Sök i Linux

alternativet-exec körs kommandon mot varje objekt som matchar uttrycketfind., Tänk på följande exempel:

find . -name "example.err" -exec chmod o+r '{}' \;

detta filtrerar varje objekt i den aktuella hierarkin (.) för filer som heterrc.conf och kör kommandotchmod o+r för att ändra filbehörigheterna för kommandotfind.

exempelkommandot körs och körs-exec – alternativet i rotkatalogen ifind – processen. Använd-execdir för att utföra det angivna kommandot i katalogen där matchen finns., Detta kan minska säkerhetsproblemen och ge bättre prestanda för vissa verksamheter.

alternativen-exec eller-execdir körs utan ytterligare uppmaningar. Om du föredrar att bli ombedd innan åtgärder vidtas, ersätt -exec med -ok eller -execdir med -okdir.

hur man hittar och tar bort filer med kommandoraden Linux

Varning

använd det här alternativet med stor försiktighet.,

Lägg till alternativet-delete till slutet av ett matchande uttryck för att radera alla filer som matchar. Använd det här alternativet när du är säker på att resultaten bara matchar de filer som du vill ta bort.

i exemplet nedan hittarfind rekursivt alla filer i hierarkin som börjar i den aktuella katalogen och tar bort alla filer som slutar med tillägget.err:

find . -name "*.err" -delete

har fortfarande några frågor?,

gå med i vår diskussionsgrupp och skicka dina frågor till andra Linode-och Linux-entusiaster för att hjälpa dig.

relaterade frågor:

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *