Learn R Programming

base (version 3.6.2)

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.

On most platforms ‘file’ includes symbolic links, fifos and sockets. unlink(x, recursive = TRUE) deletes the just symbolic link if the target of such a link is a directory.

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. 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. 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, but globbing will not work.

References

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

See Also

file.remove.