VMS ODS5 symlinks are a POS IX. The support in the Linux ods5 file system is limited or maybe I should say experimental. Following symbolic links is off by default. To get symlink support, mount with -o syml On VMS (with the default settings for a process, that is after a "set process/parse/case"): $ copy tt: hello Hello World! [ Exit ] $ create/symlink="hello" world This results in the files HELLO.;1 and WORLD.;1 with world containing "hello" as a symbolic link. And a $ type world. Hello World! $ gives the somehow expected result. The problem here is, the symbolic link, the contents of WORLD.;1, is not an ODS5 filename! How can the Linux ods5 file system ever find this? The lookup method is an inode operation and now has to find both, ODS5 files with version and - as a result of following a symbolic link - the last version of an ODS5 file without a version specified or even a directory file without the .DIR type. Simplified, this is done with looking for the version delimiter. If the ods5_lookup sees it, then we do an ordinary lookup, if it sees none, then we do a symbolic link lookup. Even with sophisticated checks if the ';' delimits a version number, this creates several problems 1. A symbolic link to a file "a.b;1" which is the ODS5 target "a.b^;1;0" will incorrectly lookup the different ODS5 file "a.b;1". 2. Version-less file specifications are allowed and show as such! This was never intended! But with file completion the versions are added. 3. Dirless directories work! This was intended to be available only with a separate option. But with file completion the .DIR type is added. 4. The option dotversion makes this more complicated. Symbolic links to ODS5 files like "a.b^;1;1" are likely rare. Symbolic links to ODS5 files like "a.1" are probably more common. Both will not be correctly resolved. Therefore, syml disables dotversion and the check for a version is simply the check for any ";" in a filename.