find(1): Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
Rad 1: Rad 1:
== find(1) - Linux manual sida ==
=== NAMN ===
=== NAMN ===
find - sök efter filer i en kataloghierarki
find - sök efter filer i en kataloghierarki


=== SYNOPSIS ===
=== SYNOPSIS ===
<pre>
find [-H] [-L] [-P] [-D debugalternativ] [-O nivå] [startpunkt...] [uttryck]
find [-H] [-L] [-P] [-D debugalternativ] [-O nivå] [startpunkt...]
    [uttryck]
</pre>


=== BESKRIVNING ===
=== BESKRIVNING ===
Denna manualsida dokumenterar GNU-versionen av `find`. GNU `find` söker igenom katalogträdet från varje angiven startpunkt genom att utvärdera det angivna uttrycket från vänster till höger, enligt prioriteringsregler (se avsnittet OPERANDER), tills resultatet är känt (vänster sida är falsk för `-a`-operationer, sann för `-o`), varefter `find` går vidare till nästa filnamn. Om ingen startpunkt anges, antas `.`.
Denna manualsida dokumenterar GNU-versionen av `find`. GNU `find` söker igenom katalogträdet med rot i varje angiven startpunkt genom att utvärdera det angivna uttrycket från vänster till höger enligt prioriteringsreglerna (se avsnitt OPERATÖRER) tills utfallet är känt (vänster sida är falsk för OCH-operationer, sann för ELLER-operationer), vid vilken punkt `find` går vidare till nästa filnamn. Om ingen startpunkt anges, används `.` som standard.


Om du använder `find` i en miljö där säkerhet är viktig (t.ex. vid sökning i kataloger som kan skrivas av andra användare) bör du läsa kapitlet "Säkerhetsöverväganden" i findutils-dokumentationen, som heter "Finding Files" och medföljer findutils. Det dokumentet innehåller mer detaljer och diskussion än denna manualsida.
Om du använder `find` i en miljö där säkerhet är viktigt (t.ex. om du söker i kataloger som kan skrivas av andra användare), bör du läsa kapitlet "Säkerhetsöverväganden" i dokumentationen för `findutils`, som heter *Finding Files* och ingår i `findutils`. Det dokumentet innehåller också mer detaljer och diskussion än denna manualsida.


=== ALTERNATIV ===
=== ALTERNATIV ===
`-P`  Aldrig följ symboliska länkar (standard).
 
`-L`  Följ symboliska länkar.
De alternativ som börjar med `-H`, `-L` och `-P` styr hur symboliska länkar behandlas. Argument på kommandoraden efter dessa tolkas som namn på filer eller kataloger som ska undersökas, fram till det första argumentet som börjar med `-`, eller argumentet `(` eller `!`. Det argumentet och alla efterföljande argument tolkas som det uttryck som beskriver vad som ska sökas. Om inga sökvägar anges används den aktuella katalogen. Om inget uttryck anges, används standarduttrycket `-print` (men du bör överväga att använda `-print0` istället).
`-H`  Följ endast symboliska länkar på kommandoraden.
 
`-D debugalternativ` Skriv ut diagnostisk information.
Denna manualsida talar om "alternativ" inom uttryckslistan. Dessa alternativ styr `find`:s beteende men anges omedelbart efter den sista sökvägen. De fem "verkliga" alternativen `-H`, `-L`, `-P`, `-D` och `-O` måste om de används förekomma innan den första sökvägen anges. En dubbelbindestreck `--` kan teoretiskt användas för att signalera att alla återstående argument inte är alternativ, men detta fungerar egentligen inte på grund av hur `find` bestämmer slutet på de efterföljande sökvägsargumenten.
`-O nivå` Aktivera frågeoptimering (standard: 1).
 
Om en sökväg till exempel börjar med `-` kan `find` tolka det som ett uttrycksargument. För att säkerställa att alla startpunkter behandlas som sådana, och särskilt för att förhindra att jokertecken som expanderas av skalet misstolkas som uttrycksargument, är det generellt säkrare att inleda sådana sökvägar med `./` eller använda absoluta sökvägar som börjar med `/`.
 
==== Alternativ för symboliska länkar ====
 
`-P`  - Följ aldrig symboliska länkar (standard).
`-L`  - Följ symboliska länkar.
`-H`  - Följ symboliska länkar endast för filer angivna på kommandoraden.
 
==== Övriga alternativ ====
`-D debugalternativ` - Visa diagnostisk information.
`-O nivå` - Aktivera frågeoptimering.


=== UTTRYCK ===
=== UTTRYCK ===
* Tester - returnerar sant eller falskt baserat på filens egenskaper.
* Åtgärder - har bieffekter och returnerar sant eller falskt.
* Globala alternativ - påverkar tester och åtgärder.
* Positionella alternativ - påverkar endast efterföljande tester eller åtgärder.
* Operatorer - kopplar samman uttryck.


=== EXEMPEL ===
Den del av kommandoraden efter startpunkterna kallas "uttryck" och består av:
* Hitta och ta bort filer med namnet `core` i `/tmp`:
 
<pre>
* Tester - Returnerar sant eller falskt baserat på filens egenskaper.
find /tmp -name core -type f -print0 | xargs -0 rm -f
* Åtgärder - Har sidoeffekter (t.ex. att skriva ut filnamn).
</pre>
* Globala alternativ - Påverkar tester och åtgärder över hela uttrycket.
* Positiva alternativ - Påverkar endast efterföljande tester/åtgärder.
* Operatörer - Binder samman olika delar av uttrycket.


* Sök efter filer ändrade de senaste 24 timmarna:
Om inget uttryck anges används `-print` som standard.
<pre>
find $HOME -mtime 0
</pre>


* Kör `file` varje fil i den aktuella katalogen och underkataloger:
==== Exempel uttryck ====
<pre>
find . -type f -exec file '{}' \;
</pre>


* Hitta och lista alla SUID-filer och kataloger:
`-name "filnamn"` - Sök efter filer med angivet namn.
<pre>
`-type f` - Sök endast efter vanliga filer.
find / -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n'
`-size +1M` - Sök efter filer större än 1 MB.
</pre>
`-exec kommando {} \;` - Kör ett kommando för varje matchad fil.


=== UTGÅNGSKOD ===
=== EXEMPEL ===
`find` avslutas med status 0 om alla filer bearbetas korrekt, större än 0 om fel uppstår.


=== SE ÄVEN ===
Hitta alla filer i `/tmp` som heter `core` och ta bort dem:
`[[chmod(1)]]`,
```bash
find /tmp -name core -type f -print | xargs rm -f
```


`[[locate(1)]]`,
* Säkrare variant med `-print0` och `xargs -0`:
```bash
find /tmp -name core -type f -print0 | xargs -0 rm -f
```
 
* Hitta alla filer ändrade senaste 24 timmarna i hemkatalogen:
```bash
find $HOME -mtime 0
```


`[[ls(1)]]`,
* Hitta och kör `file` på alla filer i den aktuella katalogen:
```bash
find . -type f -exec file {} \;
```


`[[updatedb(1)]]`,
=== AVSLUTNINGSSTATUS ===


`[[xargs(1)]]`,
`find` returnerar `0` om alla filer behandlas korrekt, och ett värde större än `0` om fel uppstår.


`[[stat(2)]]`,
=== SE OCKSÅ ===


`[[printf(3)]]`,
* `ls(1)`, `xargs(1)`, `chmod(1)`, `locate(1)`, `stat(2)`, `fnmatch(3)`.


`[[regex(7)]]`
=== KÄLLOR ===


=== COPYRIGHT ===
* Denna sida baseras på GNU `findutils`.
Copyright © 1990–2025 Free Software Foundation, Inc. Licens GPLv3+: GNU GPL version 3 eller senare <https://gnu.org/licenses/gpl.html>. Detta är fri programvara: du är fri att ändra och distribuera den. Ingen garanti ges i den utsträckning som lagen tillåter.
* För full dokumentation, se [GNU findutils](https://www.gnu.org/software/findutils/).


= Sidslut =
= Sidslut =

Versionen från 19 mars 2025 kl. 07.19

NAMN

find - sök efter filer i en kataloghierarki

SYNOPSIS

find [-H] [-L] [-P] [-D debugalternativ] [-O nivå] [startpunkt...] [uttryck]

BESKRIVNING

Denna manualsida dokumenterar GNU-versionen av `find`. GNU `find` söker igenom katalogträdet med rot i varje angiven startpunkt genom att utvärdera det angivna uttrycket från vänster till höger enligt prioriteringsreglerna (se avsnitt OPERATÖRER) tills utfallet är känt (vänster sida är falsk för OCH-operationer, sann för ELLER-operationer), vid vilken punkt `find` går vidare till nästa filnamn. Om ingen startpunkt anges, används `.` som standard.

Om du använder `find` i en miljö där säkerhet är viktigt (t.ex. om du söker i kataloger som kan skrivas av andra användare), bör du läsa kapitlet "Säkerhetsöverväganden" i dokumentationen för `findutils`, som heter *Finding Files* och ingår i `findutils`. Det dokumentet innehåller också mer detaljer och diskussion än denna manualsida.

ALTERNATIV

De alternativ som börjar med `-H`, `-L` och `-P` styr hur symboliska länkar behandlas. Argument på kommandoraden efter dessa tolkas som namn på filer eller kataloger som ska undersökas, fram till det första argumentet som börjar med `-`, eller argumentet `(` eller `!`. Det argumentet och alla efterföljande argument tolkas som det uttryck som beskriver vad som ska sökas. Om inga sökvägar anges används den aktuella katalogen. Om inget uttryck anges, används standarduttrycket `-print` (men du bör överväga att använda `-print0` istället).

Denna manualsida talar om "alternativ" inom uttryckslistan. Dessa alternativ styr `find`:s beteende men anges omedelbart efter den sista sökvägen. De fem "verkliga" alternativen `-H`, `-L`, `-P`, `-D` och `-O` måste om de används förekomma innan den första sökvägen anges. En dubbelbindestreck `--` kan teoretiskt användas för att signalera att alla återstående argument inte är alternativ, men detta fungerar egentligen inte på grund av hur `find` bestämmer slutet på de efterföljande sökvägsargumenten.

Om en sökväg till exempel börjar med `-` kan `find` tolka det som ett uttrycksargument. För att säkerställa att alla startpunkter behandlas som sådana, och särskilt för att förhindra att jokertecken som expanderas av skalet misstolkas som uttrycksargument, är det generellt säkrare att inleda sådana sökvägar med `./` eller använda absoluta sökvägar som börjar med `/`.

Alternativ för symboliska länkar

`-P` - Följ aldrig symboliska länkar (standard). `-L` - Följ symboliska länkar. `-H` - Följ symboliska länkar endast för filer angivna på kommandoraden.

Övriga alternativ

`-D debugalternativ` - Visa diagnostisk information. `-O nivå` - Aktivera frågeoptimering.

UTTRYCK

Den del av kommandoraden efter startpunkterna kallas "uttryck" och består av:

  • Tester - Returnerar sant eller falskt baserat på filens egenskaper.
  • Åtgärder - Har sidoeffekter (t.ex. att skriva ut filnamn).
  • Globala alternativ - Påverkar tester och åtgärder över hela uttrycket.
  • Positiva alternativ - Påverkar endast efterföljande tester/åtgärder.
  • Operatörer - Binder samman olika delar av uttrycket.

Om inget uttryck anges används `-print` som standard.

Exempel på uttryck

`-name "filnamn"` - Sök efter filer med angivet namn. `-type f` - Sök endast efter vanliga filer. `-size +1M` - Sök efter filer större än 1 MB. `-exec kommando {} \;` - Kör ett kommando för varje matchad fil.

EXEMPEL

Hitta alla filer i `/tmp` som heter `core` och ta bort dem: ```bash find /tmp -name core -type f -print | xargs rm -f ```

  • Säkrare variant med `-print0` och `xargs -0`:

```bash find /tmp -name core -type f -print0 | xargs -0 rm -f ```

  • Hitta alla filer ändrade senaste 24 timmarna i hemkatalogen:

```bash find $HOME -mtime 0 ```

  • Hitta och kör `file` på alla filer i den aktuella katalogen:

```bash find . -type f -exec file {} \; ```

AVSLUTNINGSSTATUS

`find` returnerar `0` om alla filer behandlas korrekt, och ett värde större än `0` om fel uppstår.

SE OCKSÅ

  • `ls(1)`, `xargs(1)`, `chmod(1)`, `locate(1)`, `stat(2)`, `fnmatch(3)`.

KÄLLOR

Sidslut

Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man1/find.1.html


Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.