Betalningsmetoder Abuse

Kommandot find i Linux

04.03.2023, 02:43

Kommandot find i Linux används för att söka efter filer och kataloger i angivna kataloger baserat på olika kriterier. Detta kommando är ett av de mest kraftfulla och utbredda verktygen i Linux.

Kommandots format

Det grundläggande formatet för kommandot find är följande:

find [path] [expression]

där:

path är sökvägen till den katalog där du vill söka efter filer (som standard söker find i den aktuella katalogen och alla dess underkataloger);

expression är ett uttryck som definierar kriterierna för att söka efter filer.

Följande är några av de vanligaste kriterierna för filsökning som kan användas i ett uttryck för kommandot find:

-name: Sök efter filer efter namn. Till exempel: -type:

find /home/user -name myfile.txt

-type: Sök efter filer av en viss typ (t.ex. f för vanliga filer eller d för kataloger). Exempel: -type

find /home/user -type f

-size: Sök efter filer efter storlek. Exempel: -mtime

find /home/user -size +10M

-mtime: Sök efter filer efter senaste ändringstid. Exempel: -user

find /home/user -mtime -7

-user och -group: Sök efter filer efter ägare och grupp. Exempel: -user

find /home/user -user bob -group users

Du kan använda de logiska operatorerna -and, -or och -not för att kombinera flera sökkriterier till ett enda uttryck.

Följande kommando söker t.ex. efter alla filer i katalogen /home/user som har ändrats under de senaste 7 dagarna och som är större än 10 megabyte:

find /home/user -type f -mtime -7 -size +10M

Med kommandot find kan du också utföra olika åtgärder på de filer som hittas med hjälp av alternativet -exec. Du kan t.ex. ta bort alla filer som ändrades för mer än 30 dagar sedan med följande kommando:

find /home/user -type f -mtime +30 -exec rm {} ;

Här kör alternativet -exec kommandot rm för varje fil som hittas och använder {} för att ersätta filnamnet i kommandot.

Kommandot find är ett kraftfullt verktyg för att hitta filer och kataloger i Linux, som kan användas för att utföra olika förvaltningsrelaterade uppgifter.

Ytterligare alternativ

Kommandot find har stöd för många andra alternativ som kan användas för att hitta filer på ett mer exakt sätt:

-iname: Sök efter filer med namn utan hänsyn till skiftlägesbokstäver. Exempelvis

find /home/user -iname myfile.txt

-regex: Sök efter filer vars namn matchar ett givet reguljärt uttryck. Till exempel: -regex:

find /home/user -regex ".*.txt$"

-maxdepth och -mindepth: begränsar djupet på sökningen efter filer i underkataloger. Exempel: -maxdepth

find /home/user -maxdepth 2 -type f

-prune: utesluter vissa kataloger från sökningen. Exempel: -prune:

find /home/user -path /home/user/excluded -prune -o -type f -print

-print: matar ut listan över hittade filer till standardutmatningen. Exempel: -print

find /home/user -type f -print

find stöder även sökning av filer med hjälp av olika attribut, t.ex. behörigheter, filattribut, SELinux-etiketter och andra. Mer information om dessa alternativ finns i dokumentationen för kommandot find.

Kommandot kan söka efter filer och kataloger i hela filsystemet, vilket kan ta mycket tid och resurser i anspråk. Därför är det viktigt att vara försiktig när kommandot används och se till att sökkriterierna är korrekt inställda för att undvika att hitta onödiga filer eller fel i systemet.