in some other operating systems, such as the Unix symbolic link or the Microsoft Windows shortcut, at the expense of increased complexity and unpredictability. For example, an application can be moved from one directory to another within the same filesystem, but an existing alias would still launch the same application when double-clicked. The question can arise of how an alias should work if a file is moved, and then a file is created with the same name as the original moved file, since the alias can be used to locate both the original name and the new location of the original file. With symbolic links the reference is unambiguous (soft links refer to the new file, hard links to the original). Before Mac OS X 10.2, however, such an ambiguous alias would consistently find the original moved file, rather than the recreated file. In Mac OS X 10.2 and later releases, the new file is found, matching the behaviour of symbolic links . macOS applications can programmatically use the old behavior if required. Aliases are similar in operation to shadows in the graphical Workplace Shell of the OS/2 operating system. Distinguishing marks In System 7 through Mac OS 9, aliases distinguished themselves visually to the user by the fact that their file names were in italics. To accommodate languages that don't have italics (such as Japanese), in Mac OS 8.5 another distinguishing mark was added, badging with an "alias arrow"—a black arrow with a small white border—similar to that used for shortcuts in Microsoft Windows. In macOS, the filenames of aliases are not italicized, but the arrow badge remains. File structure The alias files in macOS start by the magic number 62 6F 6F 6B 00 00 00 00 6D 61 72 6B 00 00 00 00 which is in ASCII book␀␀␀␀mark␀␀␀␀ (␀ representing the Null character). Following the magic number, it has been reported that an alias has a set of records inside it, each record is 150 bytes long and consists of the fields shown below (all integers are big endian). However, alias files are far larger than this would explain, and include other information at least including icons. 4 bytes user type name/app creator code = long ASCII text string (none = 0) 2 bytes record size = short unsigned total length 2 bytes record version = short integer version (current version = 2) 2 bytes alias