this post was submitted on 12 Dec 2023
625 points (95.1% liked)

Memes

45690 readers
1529 users here now

Rules:

  1. Be civil and nice.
  2. Try not to excessively repost, as a rule of thumb, wait at least 2 months to do it if you have to.

founded 5 years ago
MODERATORS
 
  • ISO 8601 is paywalled
  • RFC allows a space instead of a T (e.g. 2020-12-09 16:09:...) which is nicer to read.
you are viewing a single comment's thread
view the rest of the comments
[–] meekah@lemmy.world 4 points 11 months ago* (last edited 11 months ago) (1 children)

but what does the command line matter for dates? sure every once in a while you'll have to pass a date as an argument on the command line but I think usually that kind of data is handled by APIs without human intervention, so once these are set up properly, I don't see the problem

[–] rtxn@lemmy.world 21 points 11 months ago (3 children)
rsync -a "somedir" "somedir_backup_$(date)"

If the date command returns an RFC-3339-formatted string, the filename will contain a space. If, for example, you want to iterate over the files using for d in $(find...) and forget to set $IFS properly, it can cause issues.

[–] lolcatnip@reddthat.com 2 points 11 months ago (1 children)

But $(date) does return a string with spaces, at least on every system I've ever used. And what's so bad about the possibility of spaces in filenames? They're slightly inconvenient in a command line, but I haven't used a commuter this century that didn't support spaces in filenames.

[–] rtxn@lemmy.world 3 points 11 months ago (1 children)

Bro, literally re-read the comment you replied to. It has an example of what might happen.

[–] lolcatnip@reddthat.com 1 points 11 months ago* (last edited 11 months ago)

Ok, I just reread it. I don't see what you think I'm missing. You mean an improperly written find command misbehaving? The fact that a different date format could prevent a bug from manifesting doesn't seem like much of an argument.

[–] calcopiritus@lemmy.world 1 points 11 months ago (1 children)

Both arguments are surrounded by ", which should be space-safe.

At least in the shells I use, putting " makes spaces inside paths a non-issue.

[–] rtxn@lemmy.world 1 points 11 months ago

For the rsync command, yes. But this:

for d in $(find . -type d); do
    echo "$d"
done

will process the space-separated parts of each path as separate items. I had to work around this issue just two days ago, it's an obscure thing that not everyone will keep in mind.