% File src/library/base/man/file.info.Rd
% Part of the R package, https://www.R-project.org
% Copyright 2009-2018 R Core Team
% Distributed under GPL 2 or later

\name{Sys.readlink}
\alias{Sys.readlink}
\title{
  Read File Symbolic Links
}
\description{
  Find out if a file path is a symbolic link, and if so what it is
  linked to, \emph{via} the system call \code{readlink}.

  Symbolic links are a POSIX concept, not implemented on Windows but for
  most filesystems on Unix-alikes.
}
\usage{
Sys.readlink(paths)
}
\arguments{
  \item{paths}{character vector of file paths.  Tilde expansion is done:
    see \code{\link{path.expand}}.}
}
\value{
  A character vector of the same length as \code{paths}.  The
  entries are the path of the file linked to, \code{""} if the path is
  not a symbolic link, and \code{NA} if there is an error (e.g., the
  path does not exist or cannot be converted to the native encoding).

  On platforms without the \code{readlink} system call, all elements are
  \code{""}.
}
\seealso{
  \code{\link{file.symlink}} for the creation of symbolic links (and
  their Windows analogues), \code{\link{file.info}}
}
\examples{
##' To check if files (incl. directories) are symbolic links:
is.symlink <- function(paths) isTRUE(nzchar(Sys.readlink(paths), keepNA=TRUE))
## will return all FALSE when the platform has no `readlink` system call.
is.symlink("/foo/bar")
}
\keyword{file}
