Learn R Programming

base (version 3.3)

unlink: Delete Files and Directories

Description

unlink deletes the file(s) or directories specified by x.

Usage

unlink(x, recursive = FALSE, force = FALSE)

Arguments

x
a character vector with the names of the file(s) or directories to be deleted. Wildcards (normally ‘*’ and ‘?’) are allowed.
recursive
logical. Should directories be deleted recursively?
force
logical. Should permissions be changed (if possible) to allow the file or directory to be removed?

Value

0 for success, 1 for failure, invisibly. Not deleting a non-existent file is not a failure, nor is being unable to delete a directory if recursive = FALSE. However, missing values in x are regarded as failures.

Details

Tilde-expansion (see path.expand) is done on x.

If recursive = FALSE directories are not deleted, not even empty ones.

unix On most platforms ‘file’ includes symbolic links, fifos and sockets. Prior to R 2.15.0 unlink(x, recursive = TRUE) would delete the contents of a directory target of a symbolic link: it now only deletes the symbolic link (as unlink(x, recursive = FALSE) always has).

Wildcard expansion is done by the internal code of Sys.glob. Wildcards never match a leading ‘.’ in the filename, and files ‘.’ and ‘..’ will never be considered for deletion. unix Wildcards will only be expanded if the system supports it. Most systems will support not only ‘*’ and ‘?’ but also character classes such as ‘[a-z]’ (see the man pages for the system call glob on your OS). The metacharacters * ? [ can occur in Unix filenames, and this makes it difficult to use unlink to delete such files (see file.remove), although escaping the metacharacters by backslashes usually works. If a metacharacter matches nothing it is considered as a literal character.

recursive = TRUE might not be supported on all platforms, when it will be ignored, with a warning: however there are no known current examples. Windows Character classes such as ‘[a-z]’ are supported. The metacharacter [ can occur in Windows filenames, and this makes it difficult to use unlink to delete such files (see file.remove). If a wildcard matches nothing it is considered as a literal character.

Windows cannot remove the current working directory, nor any file which is open nor any directory containing such a file.

UTF-8-encoded paths not valid in the current locale can be used.

References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

See Also

file.remove.