symbolic links come to mind. there’s soft and hard symbolic links. soft links you probably know, it’s just one item in the tree that points to another. hard links are more intricate because you (the user) cannot easily differentiate them from an ordinary file / directory. it’s basically hacking the file system to lead you in circles. this way, a directory can contain itself, which means that it’s not a tree anymore.
Which is probably why Unix tends to disallow hardlinks to directories.
They’re not physically impossible; on Mac, Time Machine even creates them (there’s some kind of special thing it has to do to be allowed to do that, I think). The system design people just went “yeah, that’s a bad idea”.
Which is slightly impressive coming from the people who decided newlines in filenames were perfectly fine, on a system where it’s very common practice to sling data around as a list of lines.
(I like the fact that literally every other character is allowed. Including spaces. Dealing with spaces isn’t too terrible! It’d just be way easier to deal with things in a guaranteed correct fashion if newlines in filenames weren’t allowed.)
Wouldn’t same be the case for normal files systems? I think, technically, files on disk stored as flat structure plus tree structure which tracks physical files bytes location on the disk. Is there a file system which actually stores dirs/files data as tree? Adding something into folder would mean moving data of next folder to create “room” for new stuff
I’ve talked before about my old idea about a tag based file system but it is purely theoretical yet afaik. Basically it is an object database where it doesn’t matter how you order the relevant tags. /a/b/file and /b/a/file are the same thing.
Is there a file system graph that’s not a tree? Like a folder that contains a folder that contains itself?
symbolic links come to mind. there’s soft and hard symbolic links. soft links you probably know, it’s just one item in the tree that points to another. hard links are more intricate because you (the user) cannot easily differentiate them from an ordinary file / directory. it’s basically hacking the file system to lead you in circles. this way, a directory can contain itself, which means that it’s not a tree anymore.
Which is probably why Unix tends to disallow hardlinks to directories.
They’re not physically impossible; on Mac, Time Machine even creates them (there’s some kind of special thing it has to do to be allowed to do that, I think). The system design people just went “yeah, that’s a bad idea”.
Which is slightly impressive coming from the people who decided newlines in filenames were perfectly fine, on a system where it’s very common practice to sling data around as a list of lines.
(I like the fact that literally every other character is allowed. Including spaces. Dealing with spaces isn’t too terrible! It’d just be way easier to deal with things in a guaranteed correct fashion if newlines in filenames weren’t allowed.)
– Frost
Does object storage count? Those are usually identified by a single key; although I guess you could count cloud tenancy and buckets as “folders”
Wouldn’t same be the case for normal files systems? I think, technically, files on disk stored as flat structure plus tree structure which tracks physical files bytes location on the disk. Is there a file system which actually stores dirs/files data as tree? Adding something into folder would mean moving data of next folder to create “room” for new stuff
I wonder is you could do some fun stuff with symbolic links and Russell’s paradox.
I’ve talked before about my old idea about a tag based file system but it is purely theoretical yet afaik. Basically it is an object database where it doesn’t matter how you order the relevant tags. /a/b/file and /b/a/file are the same thing.
See the Wikipedia link in another comment about semantic filing systems seems like it is real.
Thanks!
Wow, this was about the time I came up with the idea. Then again it was the time of blogs and tag clouds, so…