boolean checkForMacAliasFile(File inputFile) throws FileNotFoundException, IOException { // Only files can be aliases. // Do not test directories; they will be false. if (inputFile.isFile()) { byte[] bookmark = new byte[] { 0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00 }; long length = inputFile.length(); if (length > 16) { byte[] result = new byte[16]; FileInputStream fis = new FileInputStream(inputFile); fis.read(result); fis.close(); return Arrays.equals(result, bookmark); } } return false; } There is a github repo with working C++ code here. Managing aliases User interface In System 7, the only way to create an alias was to select the original and choose "Make Alias" from the "File" menu. An alias, with the same name and " alias" appended would then be created in the same folder. In later versions, it became possible to create aliases by drag-and-drop, while holding down the command and option modifier keys. Mac OS 8.5 added a feature for re-connecting aliases that had been broken for one reason or another (when the simple search algorithms failed to find a reliable replacement). This was done by selecting a new target through the standard Open File dialog. In Mac OS 8.5 options were added for command-option dragging an object in the Finder to create an alias at that location. This is where the alias cursor was added to the system. The cursor mirrors the appearance of the "create shortcut" cursor on Windows systems. Programming API The Alias Manager API is part of Carbon. It is unknown whether it was present in Mac OS Classic. Mac OS X 10.6 introduced some alias-related APIs to Cocoa, as a part of . Relation to BSD symbolic and hard links Unix and similar operating systems provide 2 features very similar to macOS aliases: symbolic links and hard links. When using the macOS Finder, links are displayed and treated largely like macOS aliases, and even carry an identical "Kind" attribute. However, when using the shell command line, macOS aliases are not recognized: for example, you cannot use the cd command with the name of an alias file. This is because an alias is implemented as a file on the disk that must be interpreted by an API while links are implemented within the filesystem and are thus functional at any level of the OS. There is currently no pre-installed command to resolve an alias to the path