Routines (alphabetical) > Routines: F > 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