IDL

FILE_READLINK

FILE_READLINK

The FILE_READLINK function returns the path pointed to by UNIX symbolic links.

Examples


Under Mac OS X, the /etc directory is actually a symbolic link. The following statement reads it and returns the location to which the link points:

path = FILE_READLINK('/etc')

It is possible to have chains of symbolic links, each pointing to another. The following function uses FILE_READLINK to iteratively translate such links until it finds the actual file:

FUNCTION RESOLVE_SYMLINK, path
  savepath = path      ; Remember last successful translation
  WHILE (path NE '') DO BEGIN
    path = FILE_READLINK(path, /ALLOW_NONEXISTENT, $       /ALLOW_NONSYMLINK)
    IF (path NE '') THEN BEGIN
      ; If returned path is not absolute, use it to replace the
      ; last path segment of the previous path.
      IF (STRMID(path, 0, 1) NE '/') THEN BEGIN
        last = STRPOS(savepath, '/', /REVERSE_SEARCH)
        IF (last NE -1) THEN path = STRMID(savepath, 0, last) $
          + '/' + path
      ENDIF
      savepath = path
    ENDIF
  ENDWHILE
  ; FILE_EXPAND_PATH removes redundant things like /./ from
  ; the result.
  RETURN, FILE_EXPAND_PATH(savepath)
END

Syntax


Result = FILE_READLINK(Path [, /ALLOW_NONEXISTENT] [, /ALLOW_NONSYMLINK] [, /NOEXPAND_PATH] )

Return Value


Returns the path associated with a symbolic link.

Arguments


Path

A scalar string or string array containing the names of the symbolic links to be translated.

Keywords


ALLOW_NONEXISTENT

Set this keyword to return an empty string rather than throwing an error if Path contains a non-existent file.

ALLOW_NONSYMLINK

Set this keyword to return an empty string rather than throwing an error if Path contains a path to a file that is not a symbolic link.

NOEXPAND_PATH

Set this keyword to cause FILE_READLINK to use Path exactly as specified, without expanding any wildcard characters or environment variable names included in the path. See FILE_SEARCH for details on path expansion.

Version History


5.6

Introduced

See Also


FILE_LINK, General File Access



Notes


This page has no user notes yet. Be the first one!


This information is not subject to the controls of the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). However, it may be restricted from transfer to various embargoed countries under U.S. laws and regulations.
© 2014 Exelis Visual Information Solutions