Though the Windows thing was really funny 😂.
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.
doing exactly what the caller intended.
No, no. Exactly what the user told it to do. Not what they intended. There’s a difference.
Exactly type
rm -rf /
instead ofrm -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.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 isrm -rf ${FOO}/
while${FOO}
is an empty string.Even so,
.
and/
are right next to each other so it’s a likely typo. You might press enter before you catch it.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/
Don’t modern versions of rm block calling on / unless you pass a separate flag?
Yup I think it’s --preserve-root
Machines will always do what you tell them to do, as long as you do what they say.
do what they say
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
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.
I like the windows delete philosophy of asking me before I delete something.
I fucking hate the windows delete philosophy of telling me I don’t have access after I said yes.
I’m this close to daily driving as Sadmin
Better would be to delete without confirmation but being able to quickly reverse it with Ctrl+Z
One drive has a trash for the trash. I’m still not convinced those files are gone after the 2nd empty, I think they just don’t show the other trash cans
It’s trash cans all the way down.
The cloud is just someone else’s trash can
You know what they say, one man’s trash…
Is another ones treature
Is another’s CLOUD ☝️🤓
Outlook on Exchange is like this. You can delete stuff to the Deleted Items directory. If you delete it from there it goes into another area called ‘Recover deleted items’.
The windows shell has really gone downhill in recent years, with spontaneous file locks and random hangs
It’s always the AV…
GUI file managers generally have “Trash” feature as well.
They usually support one but it is generally not provided by the file manager it’s self. This means that assuming that the file managers use the same trash system you can trash a file on one recover it another.
One of my first experiences with Linux at university was watching a classmate install Slackware, and then (for a laugh) dragging everything into the recycle bin.
They got a passing grade, because the lecturer saw their working installation, but they learned a valuable lesson in Linux that if you delete something, it’ll fucking delete it.
I’m so annoyed when I tell
rm
to delete a terabyte of data and it’s nowhere near instant. I’d have probably gone insane if I was using Windows.1TB for Windows… depends on file size, but let’s presume you have 1TB of Word documents… just hit Enter and go watch the Matrix trilogy.
“what are you trying to tell me? I’ll be able to select ‘yes’ when it asks me if I’m sure I want to delete?”
“No, Neo. I’m saying when you switch to Linux you won’t have to.”
I never deleted my root system with rm but I did dd go sda instead of sdb and ended up losing my data.
backups / btrfs snapshots
Btrfs snapshots/subvolumes can now also be deleted with rm. It’s no longer necessary to use ‘btrfs subvolume delete’
Really?
As I always say, you get the best linux info from linux memes 😁.
Is that actually true? Does Windows check every file with Defender before deleting it?
Not just every file deleted, every file written to disk as well (downloaded, extracted from an archive, whatever).
It’s also how most AV software works, except Defender is slow AF.
I thought it checks every file closed
No, it scans file headers when you do read/write operations on disk. Every AV works this way, except, as I said, Defender is slow AF.
I can’t find talk I watched, but I found github issue it was based on.
Short version: Defender is triggered not on open, not on read or write, but on CloseHandle.
CloseHandle of what? Read/write operations?
Found! Even metadata chamge.
If you’re going for cli, windows also can do rm -r -Force <path>
Or just do Shift Delete in Explorer.
You can do that?
Yes. Place finger on key and press lightly downward. ;)
Now wonder, which one is will be preferred by people who aren’t tech savvy.
To be fair, assuming you are not using a wastebasket which comes pre installed in a lot of distros, you still need the right permissions to delete files that belong to the system and if you’re using rm you have to use the -rf option to remove a folder and it’s contents.
They are not likely to be using the terminal. Pretty much every graphical file browser will ask for confirmation upon delete, and many will use a rubbish bin by default.