Nyheter, Prylar, Android, Mobiler, Appnedladdningar, Android

50 enkla och användbara exempel på sökkommando i Linux

En av huvudorsakerna bakom den globala populariteten som Linux- och BSD-system åtnjuter idag är deras standardverktyg och verktyg. Linux erbjuder de bästa metoderna för att söka och komma åt filer direkt från kommandoraden.

Find-kommandot i Linux är ett sådant verktyg som gör det möjligt för användare att effektivt söka i sitt system efter särskilda typer av filer. Det är ett kommandoradsverktyg som tillåter kraftfulla sökfunktioner och kan vara ett övertygande verktyg för erfarna användare.

Om du vill behärska find-kommandot i detalj och accelerera dina Linux-kunskaper, har du kommit till rätt ställe.

Innehållsförteckning

Vardagsexempel på Find Command i Linux


Vi tror att det bästa sättet att lära sig Linux-kommandon är att prova dem själv. Kommandon nedan bör fungera bra på alla Linux-distributioner trots din skrivbordsmiljö.

Så du kan snabbt prova några sökkommandon i Linux genom att öppna en terminal med Ctrl + T och kopiera och klistra in kommandona härifrån.

Försök att använda dessa kommandon i din dagliga datoranvändning så mycket som möjligt för att bemästra dem snabbt.

Struktur för kommandot Sök


Find-kommandot i Linux har strukturen nedan.

find [paths] [expression] [actions]

Här anger sökvägar den katalog där du inte kommer att “hitta” för att söka efter de angivna filerna. Uttrycket låter dig filtrera dina filer baserat på vissa kriterier, medan åtgärder låter dig utföra skalkommandon på filer.

Standardåtgärden är print, som skriver ut filerna som matchas av uttryck i valfri sökväg. Find visar filerna rekursivt, vilket betyder att den kommer att gå igenom varje katalog och skriva ut resultaten därefter.

Grundläggande Linux-sökkommandon


Du kan använda några grundläggande sökkommandon för att förstå vad hitta kan göra. Dessa kommandon är ganska enkla och kräver ingen tidigare erfarenhet av andra kommandoradsverktyg.

1. Lista alla filer som finns i den aktuella katalogen
$ find

Detta kommer att skriva ut alla filer som finns i den aktuella katalogen. Om den aktuella katalogen innehåller ytterligare kataloger, kommer den att visa dem också. Detta kommando motsvarar kommandot

$ find -print

2. Lista alla filer som finns i en specifik katalog
$ find /folder

Detta kommando kommer att skriva ut alla filer som finns i katalogen /mappen. Du kan använda det här kommandot för att lista alla filer för en specifik sökväg i ditt Linux-system.

3. Sök efter en specifik fil
$ find -name test.txt

Detta kommando söker efter en fil som heter i din nuvarande katalog och i varannan underkatalog. Använd det här kommandot när du söker efter specifika filer.

4. Sök efter en specifik fil i en katalog
$ find /Docs -name test.txt

Detta kommando kommer att söka efter filen med namnet test.txt i mappen som heter /Docs. Du kan använda både absoluta sökvägar och relativa sökvägar när du använder det här kommandot.

5. Sök efter en fil i flera kataloger
$ find /opt /usr /var -name foo.scala -type f

Du kan använda det här sökkommandot när du söker efter en fil i flera kataloger samtidigt. Sätt katalognamnen efter varandra, följt av ett mellanslag när du söker.

6. Sök efter en fil som ignorerar fall
$ find -iname test.txt

Detta kommando kommer att söka efter filen utan att matcha fallet. Så om du har två filer som heter och kommer det att visa båda filerna. Alternativet -iname låter kommandot find göra detta.

7. Sök efter mappar i den aktuella katalogen
$ find -type d

Detta kommando kommer att lista alla kataloger du har under din nuvarande arbetskatalog. Du kan lägga till namnalternativet för att lista ut specifika kataloger.

8. Sök efter en specifik mapp i en katalog
$ find /home -type d -name users

Detta kommando kommer att söka efter en mapp som heter användare i /home-katalogen. Du kan lägga till alternativet -iname istället för -name för att söka utan hänsyn till fallet.

9. Sök efter PHP-filer med namn
$ find -type f -name test.php

Detta kommando kommer att lista PHP-filen test.php, som finns i den aktuella arbetskatalogen.

10. Sök efter alla PHP-filer
$ find -type f -name "*.php"

Detta sökkommando i Linux kommer att skriva ut alla PHP-filer du har i din nuvarande arbetskatalog. Du kan lägga till sökvägsalternativet före typen för att lista PHP-filer som bara finns i en specifik katalog.

11. Hitta alla symboliska länkar
$ find /usr -type l

Ovanstående kommando kommer att söka efter varje symbolisk länk i din nuvarande katalog och skriv ut därefter.

12. Sök efter filer med olika tillägg
$ find . -type f \( -name "*cache" -o -name "*xml" -o -name "*html" \)

Ovanstående find-kommando söker efter filer med namnet cache med olika tillägg. Du kan hitta en sökning efter ytterligare tillägg genom att lägga till namnalternativet följt av flaggan -o.

Hitta filer baserat på behörighet


Med kommandot find kan Linux-användare söka efter filer baserat på deras behörighetsstatus. Detta kommer att vara praktiskt när ditt system har flera användare och du måste se till att ingen får obehörig åtkomst till dina data.

13. Hitta filer som har 777 behörighetsuppsättning
$ find -type f -perm 0777 -print

Detta kommando kommer att lista alla filer i den aktuella arbetskatalogen med deras behörighet inställd på 777. Dessa är filerna som alla användare kan läsa, skriva och köra.

14. Hitta filer utan 777 behörigheter
$ find / -type f ! -perm 777

Detta sökkommando i Linux kommer bara att söka efter filer med andra behörigheter än 777. Du kan ersätta / med vilken annan plats som helst för att begränsa dina sökresultat.

15. Hitta SGID-filer med 644 behörigheter
$ find / -perm 2644

Det här sökkommandot söker endast efter SGID-filer med behörighetsstatus inställd på 644. SGID-filer tillåter tillfällig åtkomst till filer som du inte äger eller har tillgång till.

16. Hitta alla Sticky Bit-filer med 551 behörigheter
$ find / -perm 1551

Sticky Bit-filer är filer eller mappar som endast kan bytas om eller raderas av användaren som skapade dem eller rotanvändaren. Detta kommando visar alla Sticky Bit-filer i ditt system med 551 behörigheter.

17. Hitta alla SUID-filer
$ find / -perm /u=s

SUID-filer tillåter tillfälligt ägande av en filgrupp till andra användare än ägaren till filgruppen eller rotanvändaren. Detta sökkommando listar alla SUID-filer i din nuvarande Linux-maskin.

18. Hitta alla SGID-filer
$ find / -perm /g=s

SGID-filer liknar SUID-filer på många sätt, förutom att när filer med SGID-behörigheter körs sker körningen som om den ursprungliga ägaren körde processen. Detta sökkommando listar varje enskild SGID-fil oavsett deras behörighetsstatus.

19. Hitta skrivskyddade filer
$ find / -perm /u=r

Skrivskyddade filer förbjuder Linux-användare att skriva till dem eller köra dem. De kan endast skrivas eller köras av filägaren eller rotanvändaren. Detta sökkommando visar alla skrivskyddade filer som din maskin har för närvarande.

20. Hitta alla körbara filer
$ find / -perm /a=x

Körbara filer är helt enkelt filer som kan köras, till exempel binära filer. Ovanstående Linux “find-kommando” kommer att söka i systemet efter varje sådan fil och lista dem därefter.

21. Hitta alla filer med 777-behörigheter och chmod till 644
$ find / -type f -perm 0777 -print -exec chmod 644 {} \;

Ovanstående find-kommando söker igenom alla filer med 777 behörighet associerad med dem och kommer att ändra deras behörighetsstatus till 644 med hjälp av chmod-kommandot. Bara du kan nu läsa eller skriva till filerna med 644-tillstånd.

22. Hitta alla kataloger med 777 behörigheter och chmod till 755
$ find / -type d -perm 777 -print -exec chmod 755 {} \;

Detta Linux-sökkommando kommer att söka efter varje katalog som har 777-behörighet och kommer att ändra dess behörighetsstatus till 755. Vad detta gör är i huvudsak att tillåta fullständiga behörigheter endast för ägaren och läs- och exekveringsbehörighet för andra användare.

Sök efter specifika filer med hjälp av Find


Hitta kan användas för att söka efter specifika filer ganska effektivt. Du kan använda Sök för att välja filer baserat på vissa kriterier och utföra skaloperationer som att ta bort filer på dem.

23. Hitta en fil och ta bort den
$ find -type f -name "test.txt" -exec rm -f {} \;

Detta Linux “hitta”-kommando används när du behöver ta bort en fil från en lista med många filer. I det här fallet hittar den filen test.txt i den aktuella katalogen och tar bort den med rm-f.

24. Hitta flera filer och ta bort dem på en gång
$ find -type f -name "*.mp3" -exec rm -f {} \;

Find-kommandot är användbart för att söka i stora arrayer av specifika filtyper och ta bort dem samtidigt. Ovanstående kommando söker igenom ditt system efter .mp3-filer och raderar dem utan uppmaning. Du kan lägga till den interaktiva flaggan -i med rm-delen för att få en prompt varje gång en radering sker.

25. Hitta alla tomma filer i systemet
$ find /tmp -type f -empty

Tomma filer kan samla ihop dina systemresurser på mycket kort tid. Använd kommandot find, använd kommandot ovan för att lista alla tomma filer. Du kan ta bort dessa filer genom att lägga till -exec rm -f {} \; precis som kommandot ovan.

26. Hitta alla tomma mappar i systemet
$ find /tmp -type d -empty

Detta kommando kommer att lista alla tomma mappar som finns i /tmp-katalogen. Du kan använda detta för att hitta tomma mappar i vilken annan katalog som helst och ta bort dem, som du gjorde tidigare.

27. Hitta alla dolda mappar i systemet
$ find /home -type f -name ".*"

Dolda mappar har vanligtvis en enda punkt(.) som prefix i Linux-system. Använd kommandot ovan för att lista alla dolda mappar i din /home-katalog.

Hitta filer baserat på användaren


Hitta kommandot är också användbart för att söka efter filer baserat på användargrupper. Du kan söka efter specifika filer för vissa användargrupper och snabbt ändra filbehörigheter.

28. Hitta en fil som tillhör användaren
$ find / -user root -name test.txt

Du kan använda kommandot find i Linux för att söka efter en enda fil som ägs av en specifik användare. Ovanstående kommando söker efter en fil som heter test.txt i katalogen / som tillhör användarroten.

29. Hitta alla filer som tillhör användaren
$ find /home -user username

Ovanstående Linux-kommando söker efter alla filer i /home-katalogen som tillhör användaren “användarnamn”. Du måste ersätta med ditt Linux-användarnamn för att hitta alla filer som tillhör dig.

30. Hitta alla filer som tillhör en grupp
$ find /home -group programmer

Linux-filer hör vanligtvis till vissa grupper. Ovanstående find-kommando låter dig söka efter alla filer som tillhör en viss grupp som kallas och skriva ut dem i terminalen. Ersätt “programmerare” med gruppnamnet du vill söka efter.

31. Hitta specifika filer för en användare
$ find /home -user bob -iname "*.txt"

Du kan använda kommandot find för att söka efter specifika filer som tillhör en användare. Kommandot ovan gör detta och listar alla .txt-filer som tillhör användaren bob. Ersätt bob med ditt användarnamn och .txt med andra filtyper för att hitta filer av en viss typ som tillhör dig.

Hitta filer baserat på tid


Find tillåter också systemadministratörer att övervaka sitt system effektivt. Det tillåter sökning efter filer baserat på ändringstid, åtkomsttid, etc.

32. Hitta alla filer som har ändrats under de senaste 50 dagarna
$ find / -mtime 50

Med kommandot find kan användare söka efter filer som har ändrats inom en viss tid. Ovanstående kommando kommer att skriva ut alla filer i ditt system som har ändrats för 50 dagar sedan.

33. Hitta alla filer som har öppnats under de senaste 50 dagarna
$ find / -atime 50

Alternativet -atime visar filerna som har nåtts inom en definierad tidsram. Ovanstående kommando listar alla dina systemfiler som var tillgängliga för 50 dagar sedan.

34. Hitta alla filer som ändrats under de senaste 50-100 dagarna
$ find / -mtime +50 –mtime -100

Hitta kommandot i Linux tillåter användare att söka efter alla filer som ändrats inom ett givet tidsintervall. Operatörerna + och – används tillsammans med -mtime för att göra detta. Ovanstående kommando hittar alla filer du har ändrat under de senaste 50 till 100 dagarna.

35. Hitta alla filer som har ändrats under den senaste timmen
$ find / -cmin -60

Detta kommando kommer att hitta och lista alla filer som har ändrats under den senaste timmen. Du kan ersätta / med en specifik katalog för att begränsa dina sökningar. Ändra 60 till ett annat nummer, som 120, för att hitta filer som har ändrats under den tiden (2 timmar för 120).

36. Hitta alla filer som ändrats under den senaste 1 timmen
$ find / -mmin -60

Kommandot ovan visar alla filer som har ändrats under den senaste 1 timmen. Byt 60 till ett annat nummer för att ändra tidsramen som ditt syfte kräver.

37. Hitta alla filer som du har tillgång till under den senaste timmen
$ find / -amin -60

Det här kommandot visar alla filer du har öppnat den senaste timmen. Som med de två föregående kommandona, ändra 60 för önskat resultat.

Hitta filer baserat på storlek


Ibland måste du söka efter filer baserat på deras storlekar. Hitta kommer också väl till pass i detta avseende. Du kan lägga till olika alternativ för att söka efter filer mer exakt baserat på storlek.

38. Hitta filer av storlek 50 MB
$ find / -size 50M

Detta “hitta kommando” i Linux skriver ut alla filer du har över 50 MB i storlek. Ersätta / med önskad katalog och 50M med valfri annan storlek för att begränsa dina sökresultat mer effektivt.

39. Hitta alla filer över 100 MB
$ find / -size +100M

Kommandot ovan listar alla dina filer över 100 MB-märket inuti din / katalog. Du kan ändra 100M med andra filstorlekar för att få önskat resultat.

40. Hitta filer mellan 50 MB och 100 MB
$ find / -size +50M -size -100M

Ibland måste du hitta filer inom ett visst storleksintervall. Ovanstående kommando visar alla dina filer mellan 50 MB och 100 MB storlekar. Ändra de valfria parametrarna så att de matchar specifika sökkriterier.

41. Ta bort alla filer över 500 MB
$ find /Movies -size +500M -exec rm -rf {} \;

Find-kommandot är användbart för att söka efter filer över en specifik gräns och ta bort dem direkt från terminalen. Anta att du har några gamla filmer i en mapp och vill radera dem på en gång. Ovanstående kommando låter dig göra just detta. Ersätt /Movies med mappnamnet där dina filer finns.

42. Hitta de största filerna
$ find . -type f -exec ls -s {} \; | sort -n -r | head -5

Ovanstående find-kommando kommer att skriva ut de 5 största filerna i din arbetskatalog under dess underkataloger.

43. Hitta de minsta filerna
$ find . -type f -exec ls -s {} \; | sort -n | head -5

Du kan också använda kommandot find i Linux för att visa de minsta filerna. Detta kommando skriver ut de 5 minsta filerna i din nuvarande katalog.

Diverse sökkommandon


Kommandot find i Linux erbjuder många ytterligare funktioner, som att hitta filer baserat på texten de innehåller, söka och ta bort filer, hitta filer baserade på mönster, etc. Kommandona nedan visar kortfattat några av dessa förmågor.

44. Hitta och ta bort specifika filer
$ find / -type f -name *.mp3 -size +10M -exec rm {} \;

Detta Linux “hit-kommando” gör det möjligt för användare att hitta alla .mp3-filer i deras system som upptar mer än 10 MB utrymme och ta bort dem. Du kan ersätta .mp3 med vilken annan filtyp som helst och storleksparametern för specifika filtyper.

45. Hitta filer som inte matchar ett mönster
$ find /home -type f -not -name "*.html"

Ovanstående find-kommando i Linux kommer att söka efter alla filer i /home-katalogen som inte slutar på .html. Alternativet -not tillåter “hitta” att göra detta.

46. Hitta filer efter text inuti filen
$ find . -type f -name "*.java" -exec grep -l StringBuffer {} \;

Du kan använda grep för att hitta filer baserat på texten de innehåller. Ovanstående Linux “find-kommando” söker efter .java-filer som innehåller StringBuffer. Om du lägger till flaggan -i i grep kommer denna sökning att ignorera fallet.

47. Hitta och kopiera filer
$ find . -type f -name "*.mp3" -exec cp {} /home/MusicFiles \;

Kommandot find kan hitta vissa filer och kopiera dem till en ny plats. Kommandot ovan hittar alla .mp3-filer i den aktuella katalogen och kopierar dem till mappen /home/MusicFiles.

48. Hitta och flytta filer
$ find . -type f -name "*.jpg" -exec cp {} /home/Pictures \;

Hitta kan också användas för att flytta filer effektivt. Ovanstående kommando söker igenom alla .jpg-filer du har under din nuvarande katalog och flyttar dem till katalogen /home/Pictures.

49. Hitta och Tar filer
$ find . -type f -name "*.java" | xargs tar cvf myfile.tar

Du kan använda find för att söka efter vissa specifika filer och arkivera dem i tarballs. Ovanstående kommando hittar alla .java-filer i den aktuella katalogen och komprimerar dem till en tar-fil som heter myfile.tar.

50. Filtrera felmeddelanden
$ find [paths] [expression] [actions] 2>/dev/null

Ibland kan du stöta på fel som eller något annat när du provar några sökkommandon. Som visas ovan kan du omdirigera dessa fel till /dev/null.

Avslutande tankar


“Sökkommandot” i Linux är ett otroligt användbart verktyg som låter användare söka efter specifika filer baserat på olika kriterier. Med sina kraftfulla sökfunktioner och förmåga att utföra skalkommandon på filer kan det vara ett övertygande verktyg för erfarna användare.

De grundläggande sökkommandona som nämns i den här artikeln är enkla och kan testas även av användare utan tidigare erfarenhet av andra kommandoradsverktyg. Genom att använda dessa kommandon dagligen kan Linux-användare snabbt bemästra dem och påskynda sina Linux-kunskaper.

Dessutom tillåter find-kommandot användare att söka efter filer baserat på deras behörighetsstatus, vilket gör det till ett viktigt verktyg för att säkerställa att obehörig åtkomst till data inte inträffar.