2

I remember in the past, not all types of aliases (as in the macOS feature) can be created on all filesystems. This is because symbolic link (as in the type of file) is a special Unix file type, whereas aliases (as in the kind of file with resource fork) utilizes resource forks (which on some filesystems creates the ugly "._*" files).

But today, I just created a symbolic link on my FAT32 USB pointing to a folder in my removable harddrive.

My question is:

1) How does macOS Mojave creates symbolic link on FAT32 filesystem?

2) Is it portable with other Unix/BSD/Linux systems?

3) Is it compatible with Cygwin?

5
  • I think you're confusing Unix symlinks and Apple aliases. See this answer for clarification: apple.stackexchange.com/a/240552/119271. A Unix symlink is just a file that's a pointer to another file - there's nothing special and it's portable across all *nixes provided you can mount the file system (this includes Cygwin)
    – Allan
    Commented Nov 7, 2018 at 14:15
  • I'm a skilled Unix programmer and is certain that I've not confused them. There's no standard extension for extra file types on FAT32, that's why I'm concerned with portability and compatibility.
    – DannyNiu
    Commented Nov 7, 2018 at 14:21
  • Your first and second sentences in your question (incorrectly) interchange aliases and symlinks. A *nix alias is not a symlink or vice versa. A file extension has nothing to do the filesystem.
    – Allan
    Commented Nov 7, 2018 at 14:26
  • clarified a bit.
    – DannyNiu
    Commented Nov 7, 2018 at 15:24
  • @Allan By extension I didn't mean filename extension, I meant amendments to the FAT32 specification.
    – DannyNiu
    Commented Nov 8, 2018 at 2:02

2 Answers 2

2

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:

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.

1

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"

Screenshot of Windows, Cygwin, and FreeBSD directory listing

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/
$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .