How does macOS implement symbolic link in Mojave on FAT32 filesystems?
Solution 1:
The Minshall+French format is what macOS uses to store Unix symlinks on FAT and CIFS volumes. More details on the Minshall+French format can be found here:
- https://wiki.samba.org/index.php/UNIX_Extensions
The Linux CIFS implementation provides a 'mfsymlinks' mount option (which is off by default) that supports the Minshall+French format.
I believe Docker for Windows also supports the Minshall+French format.
Solution 2:
They've implemented using regular files - This feature is specific to macOS with FAT32, and is not portable or compatible with other systems or environments.
Here's a screen shot of directory listing in Explorer and "ls -l
"
And here's the content and hexdump of the file:
//64-bit Cygwin @CGEMA/
$ cat /cygdrive/j/MiniSync/Upload/ref
XSym
0019
086ccc9c5c27f3907e47a03c3423b91e
/Volumes/ProNJF/ref
...
//64-bit Cygwin @CGEMA/
$ od -a -t x1 /cygdrive/j/MiniSync/Upload/ref
0000000 X S y m nl 0 0 1 9 nl 0 8 6 c c c
58 53 79 6d 0a 30 30 31 39 0a 30 38 36 63 63 63
0000020 9 c 5 c 2 7 f 3 9 0 7 e 4 7 a 0
39 63 35 63 32 37 66 33 39 30 37 65 34 37 61 30
0000040 3 c 3 4 2 3 b 9 1 e nl / V o l u
33 63 33 34 32 33 62 39 31 65 0a 2f 56 6f 6c 75
0000060 m e s / P r o N J F / r e f nl sp
6d 65 73 2f 50 72 6f 4e 4a 46 2f 72 65 66 0a 20
0000100 sp sp sp sp sp sp sp sp sp sp sp sp sp sp sp sp
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
*
0002040 sp sp sp sp sp sp sp sp sp sp sp
20 20 20 20 20 20 20 20 20 20 20
0002053
//64-bit Cygwin @CGEMA/
$