this post was submitted on 17 Mar 2024
1174 points (97.5% liked)
Programmer Humor
27302 readers
2873 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
“Do one thing and do it very well” is the UNIX philosophy after all; if you’re 99% likely to just create that missing file after you get a file not found error, why should
touchwaste your time?Because now touch does two things.
Without touch, we could "just" use the shell to create files.
Touch does one thing from a “contract” perspective:
Ensure the timestamp of is
Systemd also does one thing from a contract perspective: run your system
Oh no.
:(
Does it do it well, though?
But this directly goes against that philosophy, since now instead of changing timestamps it's also creating files
You can pass
-cto not create a file, but it does go against the philosophy that it creates them by default instead of that being an optionEDIT: Looking closer into the code, it would appear to maybe be an efficiency thing based on underlying system calls
Without that check, touch just opens a file for writing, with no other filesystem check, and closes it
With that check, touch first checks if the file exists, and then if so opens the file for writing