path_expand() performs tilde expansion on a path, replacing instances of
~user with the user's home directory.
path_home() constructs a path within the expanded users home directory,
calling it with no arguments can be useful to verify what fs considers the
path_home_r() are equivalents which always use R's
definition of the home directory.
path_expand(path) path_expand_r(path) path_home(...) path_home_r(...)
A character vector of one or more paths.
Additional paths appended to the home directory by
path_expand() differs from
base::path.expand() in the interpretation of
the home directory of Windows. In particular
path_expand() uses the path
set in the
USERPROFILE environment variable and, if unset, then uses
base::path.expand() first checks for
which in the default configuration of R on Windows are both set to the user's
document directory, e.g.
base::path.expand() also does not support
~otheruser syntax on Windows,
path_expand() does support this syntax on all systems.
This definition makes fs more consistent with the definition of home
directory used on Windows in other languages, such as
and rust. This
is also more compatible with external tools such as git and ssh, both of
which put user-level files in
USERPROFILE by default. It also allows you to
write portable paths, such as
~/Desktop that points to the Desktop location
on Windows, macOS and (most) Linux systems.
Users can set the
R_FS_HOME environment variable to override the
definitions on any platform.
# Expand a path path_expand("~/bin")#> /Users/runner/bin# You can use `path_home()` without arguments to see what is being used as # the home diretory. path_home()#> /Users/runnerpath_home("R")#> /Users/runner/R# This will likely differ from the above on Windows path_home_r()#> /Users/runner