if you could pick a standard format for a purpose what would it be and why?
e.g. flac for lossless audio because…
(yes you can add new categories)
summary:
- photos .jxl
- open domain image data .exr
- videos .av1
- lossless audio .flac
- lossy audio .opus
- subtitles srt/ass
- fonts .otf
- container mkv (doesnt contain .jxl)
- plain text utf-8 (many also say markup but disagree on the implementation)
- documents .odt
- archive files (this one is causing a bloodbath so i picked randomly) .tar.zst
- configuration files toml
- typesetting typst
- interchange format .ora
- models .gltf / .glb
- daw session files .dawproject
- otdr measurement results .xml
However, getting people used to double extensions is one quick way of increasing the success rate of attacks such as the infamous “.pdf.exe” invoice from an email attachment.
Very good point. Though, i would argue that this would be much less of a problem if Windows stopped sometimes hiding file extensions.
I can’t see how Windows’ convention is worse
I don’t believe what you’re referring to is really a Windows versus Linux/Unix thing.
If I zip a file, it doesn’t matter what it was in a previous life, it’s now a zip - this is also how Unix deals with many filetypes, I’ve never seen a .h264.mp4 file, even though the .mp4 container can actually represent different types of encoding.
I disagree, but i do get what you’re saying here. I don’t think that example really works though, because a .mp4
file isn’t derived from a .h264
file. A .mp4
is a container that may include h264-encoded video, but it may also have a channel with Opus-encoded audio or something. It’s apples and oranges.
Also, even though there shouldn’t be any technical issues with this on Windows, you can still use a typical short filename suffix if you wish, though i would argue that using the long filename suffix is more expressive. From “tar (computing)” on Wikipedia:
Compressor | Long | Short |
---|---|---|
bzip2 | .tar.bz2 | .tb2, .tbz, .tbz2, .tz2 |
gzip | .tar.gz | .taz, .tgz |
lzip | .tar.lz | |
lzma | .tar.lzma | .tlz |
lzop | .tar.lzo | |
xz | .tar.xz | .tx |
compress | .tar.Z | .tZ, .taZ |
zstd | .tar.zst | .tzst |
I think part of the reason why the long extension is often preferred is because it’s much clearer and it’s guaranteed to be supported and decompressed by the respective tools. Even when they don’t suppot tar archives, they’ll just give you the uncompressed tar in that case.
It’s also very common to do that with other extensions (not just .tar
) when compressing big files. For example, when archiving logs they’ll often be stored as .log.gz
, which makes it automatically clear that it’s a log file directly compressed with gzip
and meant to be examined with tools like zcat
and zless
to view it.
And in cases like that you really need it to be clear on what data does the gzip stores, since it does not keep metadata about the file so you might not be able to get back the original name/extension of the file if you rename the gz file.