/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Få find til at exclude directories
Fra : Joe


Dato : 10-11-08 17:12

Jeg har et problem med en simpel find kommando:

find /testdir -path '/testdir/1' -prune -o -print

Denne fungere fint og den lister alle filer i mappen udentagen dem i
/testdir/1/

Men jeg vil kun have alle filer under 1KByte, så jeg tænkte at dette
fungerede:

find /testdir -size -1k -path '/testdir/1' -prune -o -print
(og alle mulige andre måder at kombinere -size på)

Men det lister alle filer - inklusiv alle filer i /testdir/1/

Hvordan undgår jeg dette?

 
 
Anders Wegge Keller (10-11-2008)
Kommentar
Fra : Anders Wegge Keller


Dato : 10-11-08 17:54

Joe <joe@asdasdasdasd.asdasd> writes:

> Jeg har et problem med en simpel find kommando:
>
> find /testdir -path '/testdir/1' -prune -o -print
>
> Denne fungere fint og den lister alle filer i mappen udentagen dem i
> /testdir/1/
>
> Men jeg vil kun have alle filer under 1KByte, så jeg tænkte at dette
> fungerede:
>
> find /testdir -size -1k -path '/testdir/1' -prune -o -print
> (og alle mulige andre måder at kombinere -size på)
>
> Men det lister alle filer - inklusiv alle filer i /testdir/1/
>
> Hvordan undgår jeg dette?

Hvad med -regex?

find /testdir -size -1k -regex '/testdir/[^1].*'

(Med forbehold for at der kommer nogen med et meget smartere regex om
et øjeblik)

--
/Wegge

Claus Rasmussen (10-11-2008)
Kommentar
Fra : Claus Rasmussen


Dato : 10-11-08 18:51

Joe wrote:

> Men jeg vil kun have alle filer under 1KByte, så jeg tænkte at dette
> fungerede:
>
> find /testdir -size -1k -path '/testdir/1' -prune -o -print
> (og alle mulige andre måder at kombinere -size på)
>
> Men det lister alle filer - inklusiv alle filer i /testdir/1/

Prøv

find /testdir ! \( -path '/testdir/1' -prune \) -size -1k

Jeg tror, din kommando siger "Filer, der er mindre en 1k _og_ har
stien '/testdir/1' skal prunes". Men da dit katalog er større end 1k (mine
er typisk 4k) matcher /testdir/1 ikke betingelsen og bliver derfor ikke
prunet.

-Claus

Joe (11-11-2008)
Kommentar
Fra : Joe


Dato : 11-11-08 09:33

>> Men jeg vil kun have alle filer under 1KByte, så jeg tænkte at dette
>> fungerede:
>> find /testdir -size -1k -path '/testdir/1' -prune -o -print
>> (og alle mulige andre måder at kombinere -size på)
>> Men det lister alle filer - inklusiv alle filer i /testdir/1/
>
> find /testdir ! \( -path '/testdir/1' -prune \) -size -1k
>
> Jeg tror, din kommando siger "Filer, der er mindre en 1k _og_ har
> stien '/testdir/1' skal prunes". Men da dit katalog er større end 1k (mine
> er typisk 4k) matcher /testdir/1 ikke betingelsen og bliver derfor ikke
> prunet.

Ahhh, du har fat i noget. Min size på dirs er også 4K. Jeg havde ikke
taget højde for, at den også ser på dir-størrelsen og med 4K size limit
gør den dét den skal. Jeg fokuserede udelukkende på fil størrelse.

Takker.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408920
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste