Your understanding is correct, and your perspective on this aspect of Unix/Linux command line behavior is not unique. Many users, especially those who are new to Unix-like systems or not deeply familiar with shell scripting, find this behavior unintuitive or even frustrating. Here's a bit more context on how this is generally viewed:
1. **Common Source of Confusion**: The distinction between the privileges of a command (`cat` in this case) and the shell that interprets the redirection (`>`) is a common source of confusion. Many users expect `sudo` to apply to the entire command line, including the redirection, only to encounter permission issues.
2. **Security and Precision**: This behavior is by design for security and precision. The philosophy behind Unix/Linux systems often emphasizes giving each command and operation the least privilege necessary to accomplish its task. This principle helps to avoid accidental misuse of root privileges, such as overwriting important system files.
3. **Workarounds Seem Opaque**: The workarounds, like using `sudo sh -c '...'` or the `tee` command, can indeed seem opaque or cumbersome, especially if one's background is from operating systems where command-line privilege elevation is handled differently.
4. **A Learning Curve**: Unix/Linux systems have a learning curve, and understanding the nuances of command execution, file permissions, and user privileges is part of that process. Experienced Unix/Linux users are familiar with these intricacies and often navigate them without a second thought.
5. **Community Views**: Within the Unix/Linux community, these behaviors are generally accepted as part of the system's design philosophy. However, there are always discussions and differing opinions on how certain aspects of the system could be more user-friendly or intuitive, especially for newcomers.
Your observation about this being an "opaque and awkward workaround" reflects a common sentiment among those who are adapting to Unix/Linux system paradigms. Over time, as one becomes more familiar with these systems, these concepts and their rationale become clearer, and what initially seems opaque often starts to make more sense within the broader context of Unix/Linux philosophy and security practices.