ENOSIG Discussie (threads)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: find (bug in size?)


On Wed, 26 Mar 2014 20:12:34 +0100 Geert Stappers <stappers@xxxxxxxxxxx> wrote:

> Op 2014-03-26 om 17:29 schreef Wim:
> > Hallo,
> > 
> > Nu we het toch over
> > 	find 
> > hadden nog een vraagje. Als ik twee bestanden (grootte van 9311 en 9958 bytes vastgesteld met
> > 	find . * -printf "%s\n"
> > ) en ik doe
> > 	find . -size -10k -printf "%s\n"
> > dan worden ze niet gevonden echter ze zijn dus wel kleiner als 10k!
> > In find is
> > 	k 1024 bytes
> > dus ze zouden gevonden moeten worden lijkt mij.
> > Als ik doe
> > 	find . -size -10000c -printf "%s\n"
> > worden ze wel gevonden.
> > 	c is een byte in find
> > Dit is ook correct.
> > Bug of zie ik iets over het hoofd?
> 
> 
> Euh, ik het niet reproduceren.
> 
> <screenshot>
> stappers@nero:~
> $ mkdir findme
> stappers@nero:~
> $ cd !$
> cd findme
> stappers@nero:~/findme
> $ dd if=/dev/zero of=9370 bs=9370 count=1
> 1+0 records in
> 1+0 records out
> 9370 bytes (9.4 kB) copied, 0.000294524 s, 31.8 MB/s
> stappers@nero:~/findme
> $ dd if=/dev/zero of=20k bs=1024 count=20
> 20+0 records in
> 20+0 records out
> 20480 bytes (20 kB) copied, 0.000327382 s, 62.6 MB/s
> stappers@nero:~/findme
> $ find . -size 10k
> ./9370
> stappers@nero:~/findme
> $ find . -size 10k -printf "%s\n"
> 9370
> stappers@nero:~/findme
> $ ls -l ; ls -lh
> total 32
> -rw-r--r-- 1 stappers stappers 20480 Mar 26 20:03 20k
> -rw-r--r-- 1 stappers stappers  9370 Mar 26 20:02 9370
> total 32K
> -rw-r--r-- 1 stappers stappers  20K Mar 26 20:03 20k
> -rw-r--r-- 1 stappers stappers 9.2K Mar 26 20:02 9370
> stappers@nero:~/findme
> $ 
> </screenshot>
> 
> Groeten
> Geert Stappers

Hmm, als ik doe wat Geert heeft gedaan:
Wacht even vooraf. Geert zoekt op bestanden van
	10k,
ik zocht op bestanden kleiner als 10k dus
	-10k
voor find.
Wel vreemd dat Geert dan toch het bestand van 9370 bytes vind. 10k is volgens find 10240 bytes.

Even in een script gezet wat Geert gedaan heeft:
#! /bin/bash
mkdir findme
cd findme
dd if=/dev/zero of=9370 bs=9370 count=1
dd if=/dev/zero of=20k bs=1024 count=20
find . -size 10k
find . -size 10k -printf "%s\n"
ls -l ; ls -lh

Dan krijg ik als output:
~/scripts/testjes $ ./findtest.sh 
1+0 records in
1+0 records out
9370 bytes (9,4 kB) copied, 0,00013448 s, 69,7 MB/s
20+0 records in
20+0 records out
20480 bytes (20 kB) copied, 0,000191 s, 107 MB/s
./9370
9370
total 32
-rw-r--r-- 1 wim wim 20480 Mar 27 14:15 20k
-rw-r--r-- 1 wim wim  9370 Mar 27 14:15 9370
total 32K
-rw-r--r-- 1 wim wim  20K Mar 27 14:15 20k
-rw-r--r-- 1 wim wim 9,2K Mar 27 14:15 9370

Als ik dan doe (10k met min):
~/scripts/testjes/findme $ find . -size -10k -printf "%s\n"
4096
En dat is wat anders. Dat lijkt op de omvang van de folder findme zelf.

Nu met 10k zonder -
~/scripts/testjes/findme $ find . -size 10k -printf "%s\n"
9370

find . -size -30k -printf "%s\n"
4096
20480
9370

Rara, ik snap dat niet, het wordt steeds vreemder lijkt het. Dat ik nu ook 4096 te zien krijg is nieuw sinds ik mijn vraag gesteld heb. Nog even gecontroleerd in de folder waar ik initieel aan het zoeken was met find en daar zie ik nu ook extra 4096 bij de resultaten.

Follow-ups:

Gerelateerd:


[ Date Index] [ Thread Index]