am regularly amazed that we pretend folders are the right way to organise files. They’re entirely arbitrary. Every competent file system ignores them to its best ability. Why can’t I have a file in two folders? Why does one have to be a “reference”? Why can’t I filter for files that exist in 3 folders with X extension?

We’ve been played for absolute fools.

  • frongt@lemmy.zip
    link
    fedilink
    arrow-up
    5
    ·
    1 day ago

    Why can’t I have a file in two folders? Why does one have to be a “reference”?

    All files are references. But you have always been able to put a reference to one file in multiple folders by using hard links.

    Why can’t I filter for files that exist in 3 folders with X extension?

    find dir1 dir2 dir3 -name '*.x' -type f

    • hallettj@leminal.space
      link
      fedilink
      English
      arrow-up
      2
      ·
      8 hours ago

      We have hard links, but is there any good UI out there for them? I only know of using the ln command directly. Or put another way, do you know of anyone who actually uses hard links in a way similar to how a tagging filesystem would be used? What are the obstacles that prevent this use case from being easy or discoverable enough to be in common use?

      With a tagging system you can remove tags without fear of losing file data. But with hard links you could easily delete the last link without realizing that it’s the last link, and then the file is gone.

      That relates to another issue: in a tagging system you can look at file metadata to see all of the file’s tags. Is there a convenient way to do that with hard links? I see there is find . -samefile /path/to/one/link, but requiring a filesystem scan is not optimal.

      • frongt@lemmy.zip
        link
        fedilink
        arrow-up
        1
        ·
        3 hours ago

        No, in nearly every case, you never want a hard link. You want one file, and symlinks to it. (Technically every file is a hard link to an inode, and subsequent ones are just additional links to the same inode.) In ext4, you can’t easily get a list of links to an inode, you have to scan the filesystem and look for duplicates. Other filesystems might make this easier.

        You shouldn’t try to use a tree filesystem to approximate a tagged database. Use the appropriate tool for the job.

      • chaos@beehaw.org
        link
        fedilink
        arrow-up
        1
        ·
        8 hours ago

        Most people don’t need a file to be in two places at once, it’s more confusing than convenient. And if they do want two of a file at all, they almost certainly want them to be separate copies so that the original stays unmodified when they edit the second one. Anyone who really wants a hard link is probably comfortable with the command line, or should get comfortable.

        The Mac actually kind of gets the best of both worlds, APFS can clone a file such that they aren’t hard links but still share the same blocks of data on disk, so the second file takes up no more space, and it’s only when a block gets edited that it diverges from the other one and takes up more space, while the unmodified blocks remain shared. It happens when copy-pasting or duplicating a file in the Finder as well as with cp on the command line. I’m sure other modern file systems have this as well.

    • Eldritch@piefed.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 day ago

      Yep. Even NT was doing it for decades. Though it was pretty discouraged on the Microsoft side.