directory order of files
With Linux ext2, and some other systems, when you create files in a new directory, the file system remembers their order:
$ mkdir new $ cd new $ touch one two three four $ ls -U one two three four
(1) Is there any standard that says a system should behave this way? Is there any software that depends on this behaviour?
(2) Are there Linux file systems that don't work this way? Maybe someone with a mounted writable reiserfs could do a quick check.
Please copy replies to me as I am not subscribed. Thanks.
Edmund
Quoted 2 lines
With Linux ext2, and some other systems, when you create files in a new directory, the file system remembers their order:
No - it merely seems too.
Quoted 3 lines
$ touch one two three four $ ls -U one two three four
Then try 'rm three; touch five'
Quoted 3 lines
(1) Is there any standard that says a system should behave this way? Is there any software that depends on this behaviour?
The order is arbitary.
Quoted 10 lines · Alan Cox
Quoted 2 lines
With Linux ext2, and some other systems, when you create files in a new directory, the file system remembers their order:
No - it merely seems too.
Quoted 3 lines
$ touch one two three four $ ls -U one two three fourThen try 'rm three; touch five'
Moreover, it isn't true even for the case when we create a list of files in empty directory. Example: assuming that /tmp has 1Kb blocks,
mkdir /tmp/A
cd A
touch perl -e 'print "a"x255'
touch perl -e 'print "b"x255'
touch perl -e 'print "c"x255'
touch perl -e 'print "d"x255'
touch A
ls -U
will give you (lots of a) (lots of b) (lots of c) A (lots of d).
With 4Kb blocks you'll need 16 long names instead of 4 - the effect will be the same.
The reason is quite simple - at some point you get no space for long name and it goes into the next directory block, but there's still enough for a short name, so it gets created in the first block.
IOW, there's no warranties at all.
Quoted 4 lines · Edmund GRIMLEY EVANS
With Linux ext2, and some other systems, when you create files in a new directory, the file system remembers their order:
Quoted 8 lines
$ mkdir new $ cd new $ touch one two three four $ ls -U one two three four(1) Is there any standard that says a system should behave this way? Is there any software that depends on this behaviour?
Unix filesystem hierarchies are defined to be a partial ordering, not a full ordering.
Quoted 5 lines
(2) Are there Linux file systems that don't work this way? Maybe someone with a mounted writable reiserfs could do a quick check.
Please copy replies to me as I am not subscribed. Thanks.
bash-2.05# mkdir fu
bash-2.05# cd fu
bash-2.05# touch one two three four
bash-2.05# ls -U
one two four three
Hans
on reiserfs ls -U show soething like:
one two four three
Quoted 24 lines · Edmund GRIMLEY EVANS
With Linux ext2, and some other systems, when you create files in a new directory, the file system remembers their order:
$ mkdir new $ cd new $ touch one two three four $ ls -U one two three four(1) Is there any standard that says a system should behave this way? Is there any software that depends on this behaviour?
(2) Are there Linux file systems that don't work this way? Maybe someone with a mounted writable reiserfs could do a quick check.
Please copy replies to me as I am not subscribed. Thanks.
Edmund
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/