this post was submitted on 22 Mar 2024
665 points (100.0% liked)

linuxmemes

24633 readers
969 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack users for any reason. This includes using blanket terms, like "every user of thing".
  • Don't get baited into back-and-forth insults. We are not animals.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn, no politics, no trolling or ragebaiting.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, <loves/tolerates/hates> systemd, and wants to interject for a moment. You can stop now.
  • 5. πŸ‡¬πŸ‡§ Language/язык/Sprache
  • This is primarily an English-speaking community. πŸ‡¬πŸ‡§πŸ‡¦πŸ‡ΊπŸ‡ΊπŸ‡Έ
  • Comments written in other languages are allowed.
  • The substance of a post should be comprehensible for people who only speak English.
  • Titles and post bodies written in other languages will be allowed, but only as long as the above rule is observed.
  • 6. (NEW!) Regarding public figuresWe all have our opinions, and certain public figures can be divisive. Keep in mind that this is a community for memes and light-hearted fun, not for airing grievances or leveling accusations.
  • Keep discussions polite and free of disparagement.
  • We are never in possession of all of the facts. Defamatory comments will not be tolerated.
  • Discussions that get too heated will be locked and offending comments removed.
  •  

    Please report posts and comments that break these rules!


    Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.

    founded 2 years ago
    MODERATORS
     

    Though the Windows thing was really funny πŸ˜‚.

    you are viewing a single comment's thread
    view the rest of the comments
    [–] bort@sopuli.xyz 93 points 1 year ago (3 children)

    the linux-file-deletion is used as a example for good software design. It has a very simple interface with little room for error while doing exactly what the caller intended.

    In John Ousterhout's "software design philosophy" a chapter is called "define errors out of existence". In windows "delete" is defined as "the file is gone from the HDD". So it must wait for all processes to release that file. In Linux "unlink" is defined as "the file can't be accessed anymore". So the file is gone from the filesystem immediately and existing file-handles from other processes will life on.

    The trade-off here is: "more errors for the caller of delete" vs "more errors due to filehandles to dead files". And as it turns out, the former creates issues for both developers and for users, while the later creates virtually no errors in practice.

    [–] lemmyvore@feddit.nl 116 points 1 year ago (2 children)

    doing exactly what the caller intended.

    No, no. Exactly what the user told it to do. Not what they intended. There's a difference.

    [–] hstde@feddit.de 37 points 1 year ago (1 children)

    Exactly type rm -rf / instead of rm -rf ./ and you ducked up. Well you messed up a long time ago by having privileges to delete everything, but then again, you are human, some mistakes will be made.

    [–] taladar@sh.itjust.works 35 points 1 year ago (2 children)

    Deleting the current directory via ./ seems contrived since you would just use . or more likely the directory name from outside the directory. What does happen is rm -rf ${FOO}/ while ${FOO} is an empty string.

    [–] qjkxbmwvz@startrek.website 19 points 1 year ago

    Not sure if you're referencing the Steam incident, but Steam did exactly that: https://www.theregister.com/2015/01/17/scary_code_of_the_week_steam_cleans_linux_pcs/

    [–] NeatNit@discuss.tchncs.de 18 points 1 year ago (2 children)

    Even so, . and / are right next to each other so it's a likely typo. You might press enter before you catch it.

    [–] 0x4E4F@sh.itjust.works 1 points 1 year ago

    The double check before you rm things 🀷.

    [–] reinei@lemmy.world 1 points 1 year ago

    ${Insert meme of qwertz ganz not having that problem here}

    [–] Semi_Hemi_Demigod@lemmy.world 3 points 1 year ago (2 children)

    Machines will always do what you tell them to do, as long as you do what they say.

    [–] lurker2718@lemmings.world 7 points 1 year ago

    Yes, the file itself (so the data and inode) is not gone as long as the handles live on. Only the reference is gone. You canstill recover the file. https://superuser.com/questions/283102/how-to-recover-deleted-file-if-it-is-still-opened-by-some-process#600743

    [–] 0x4E4F@sh.itjust.works 3 points 1 year ago

    The trade-off here is: "more errors for the caller of delete" vs "more errors due to filehandles to dead files". And as it turns out, the former creates issues for both developers and for users, while the later creates virtually no errors in practice.

    Tell that to my dded porn collection.