|
| 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.
| |
|
|