大部分对目录与文件的操作是可以通用的
# 查看当前目录
> getwd()
# 查看当前子目录
> list.dirs()
# 获取文件所在目录,即截取路径名,常用于设定工作目录或者输出目录
> dirname("/the/aim/path/readme.txt")
[ 1 ] "/the/aim/path"
# 获取文件名,即截取完整路径输入的文件名
> basename("/the/aim/path/readme.txt")
[ 1 ] "readme.txt"
> basename("/the/aim/path")
[ 1 ] "path"
# 查看当前目录的子目录和文件
> dir() > list.files()
# 查看指定目录的子目录和文件
> dir(path="/the/aim/path")
# 只列出指定目录下以R为开头的目录或文件
> dir(path="/the/aim/path",pattern='^R')
# 列出指定目录下的所有目录及文件,包括隐藏文件
> dir(path="/the/aim/path/",all.files=TRUE) >list.files('/the/aim/path/',all.files=TRUE)
# 查看完整的目录或者文件信息
> file.info("/the/aim/path")
# 创建目录以及文件
# 在当前目录下,新建一个目录 #创建一个空文件 # 创建一个有内容的文件
> dir.create("create") > file.create("A.txt") > cat("file b\n",file="B.txt")
# 逐级创建目录
> dir.create(path="a1/b2/c3",recursive=TRUE)
# 查看目录结构 # 查看文件目录
> system("tree") > system("ls -l") # system()函数 可直接使用linux基础命令
# 检查目录或者文件是否存在
> file.exists("/the/aim/path")
# 检查目录
> df <- dir(full.names=TRUE)
# 检查目录或者文件是否存在,mode =0
> file.access(df,0) == 0
# 检查目录或者文件是否可执行,mode=1
> file.access(df,1) == 0
# 检查目录或者文件是否可写,mode=2
> file.access(df,2) == 0
# 检查目录或者文件是否可读,mode=4
> file.access(df,4) == 0
# 修改目录或者文件权限,所有用户只读 0555 创建者可读可写可执行,其他人无权限 0700
> Sys.chmod('/the/aim/path",mode="0555",use_umask=TRUE)
# 对目录或者文件重命名
> file.rename("tmp","tmp2")
# 删除目录
> unlink(“tmp2”, recursive= TRUE) > file.remove("A.txt","B.txt","C.txt")
# 获取绝对路径
> path.expand("~/foo")
[ 1 ] "/home/test/foo"
# 判断是否为目录
> file_test("-d","readme.txt")
# 判断是否为文件
> file_test("-f","/the/aim/path")
# 打印A.txt
> readLines("A.txt")
# 合并文件
> file.append("A.txt",rep("B.txt",10))
> readLines("A.txt")
# 复制文件
> file.copy("A.txt","C.txt")
# 硬连接
> file.link("readme.txt","hard_link.txt")
# 软连接
> file.symlink("readme.txt","soft_link.txt")
几个特殊的目录
# 查看R软件的相关目录
> R.home() > R.home(component="bin")
# 查看R核心包的目录
> .Library()
# 查看R核心包的目录和root用户安装包的目录
> .Library.site()
# 查看R所有包的存放目录
> .libPaths()
# 查看指定包所在的目录
> system.file() > system.file("package="pryr")