normalizePath(path, winslash = "\\", mustWork = NA)c("/", "\\").TRUE then an error is given if the result
    cannot be determined; if NA then a warning.mustWork = TRUE, when this should be an error).  It will be
  either the corresponding input element or a transformation of it into
  an absolute path. Converting to an absolute file path can fail for a large number of
  reasons.  The most common are
  path.expand) is first done on
  paths. Where the Unix-alike platform supports it attempts to turn paths into
  absolute paths in their canonical form (no ./, ../ nor
  symbolic links).  It relies on the POSIX system function
  realpath: if the platform does not have that (we know of no
  current example) then the result will be an absolute path but might
  not be canonical.  Even where realpath is used the canonical
  path need not be unique, for example via hard links or
  multiple mounts. On Windows it converts relative paths to absolute paths, converts
  short names for path elements to long names and ensures the separator
  is that specified by winslash.  It will match paths
  case-insensitively and return the canonical case.
  UTF-8-encoded paths not valid in the current locale can be used. mustWork = FALSE is useful for expressing paths for use in
  messages.shortPathName