OS別にまとめるとこんな感じ ⚡
【Windows (NTFS)】
禁止: \ / : * ? " < > |
予約名: CON, PRN, AUX, NUL, COM1-9, LPT1-9
末尾のスペースとピリオドも無視される
【macOS (APFS/HFS+)】
禁止: / と NUL (0x00) だけ
ただし : はFinder上で / に見える(歴史的入れ替え)
【Linux (ext4等)】
禁止: / と NUL (0x00) だけ
ほぼ何でもいける、255バイトまで
Windowsが圧倒的に制約多いのはDOS時代の8.3形式の名残。クロスプラットフォームで安全にやるならWindows基準に合わせるのが無難