R语言- 目录权限和Size 检查

简介: 本文分享了两种根据提供的路径检查系统文件大小的实现方法(单循环、并行),以供参考学习

1、单线程loop

### 1、check Files
data.use[["Permision"]] <- unlist(lapply(data.use[["Path"]],function(x) R.utils::fileAccess(pathname = x, mode=4)))
data.use[["DIR_Size"]] <- unlist(lapply(data.use[["Path"]],function(x) strsplit(suppressWarnings(toString(system(paste('du -BG ',x,sep = " "), ignore.stderr = T ,intern = T))),"\t")[[1]][1]))
### 2、summary
cat("Total Size: ",sum(as.numeric(gsub("G","",data.use[["DIR_Size"]])),na.rm = T)/1024,"T","\n")
cat("Permission ERR: ",sum(abs(data.use[["Permision"]])),"\n")

2、多线程loop

library(future.apply);plan('multisession', workers = 20);options(future.globals.maxSize = 100 * 1024^3)
data.use <- readxl::read_xlsx(</your file/>) %>% mutate(Path = </rename column/>)
### 1、check Files
data.use[["Permision"]] <- unlist(future_lapply(data.use[["Path"]],function(x){R.utils::fileAccess(pathname = x, mode=4)}))
data.use[["DIR_Size(M)"]]  <- unlist(future_lapply(data.use[["Path"]],function(x){strsplit(suppressWarnings(toString(system(paste('du -BM ',x,sep = " "), ignore.stderr = T ,intern = T))),"\t")[[1]][1]}))
data.use[["DIR_Size(G)"]]  <- paste0(round(as.numeric(gsub("M","",data.use[["DIR_Size(M)"]]))/1024,2),"G")
data.use[["DIR_Size(T)"]]  <- paste0(round(as.numeric(gsub("M","",data.use[["DIR_Size(M)"]]))/(1024^2),2),"T")
### 2、summary
cat("Total Size: ",sum(as.numeric(gsub("G","",data.use[["DIR_Size(G)"]])),na.rm = T)/1024,"T","\n")
cat("Permission ERR: ",sum(abs(data.use[["Permision"]])),"\n")
### 3、...save output
data.use %>% write.table(</output file/>,sep = "\t",col.names = T,row.names = F,quote = F)
目录
相关文章
|
6月前
|
安全 Unix Linux
在Python中,如何处理文件和目录的访问权限?
【2月更文挑战第15天】【2月更文挑战第43篇】在Python中,如何处理文件和目录的访问权限?
270 0
|
4月前
|
存储 Linux 数据安全/隐私保护
Linux用户和用户组,useradd test2 -g itcast -d /home/test222 设置分组和存放路径
Linux用户和用户组,useradd test2 -g itcast -d /home/test222 设置分组和存放路径
|
6月前
|
数据安全/隐私保护
kali下设置root权限(包含很多技巧)
kali下设置root权限(包含很多技巧)
|
6月前
|
算法 Linux API
【Linux系统编程】一文了解 Linux目录的创建和删除API 创建、删除与读取
【Linux系统编程】一文了解 Linux目录的创建和删除API 创建、删除与读取
72 0
【Linux系统编程】一文了解 Linux目录的创建和删除API 创建、删除与读取
|
Go Python
Go-文件目录操作分类详解(创建、打开、关闭、读取、写入、判断等)
Go-文件目录操作分类详解(创建、打开、关闭、读取、写入、判断等)
423 0
Go-文件目录操作分类详解(创建、打开、关闭、读取、写入、判断等)
|
Linux
LINUX清理垃圾桶提示“没有权限”或“目录非空”
LINUX清理垃圾桶提示“没有权限”或“目录非空”
209 0
|
Linux Go
linux中的chmod改变权限、修改bigbig.txt文件使其所属主用户只有读权限、修改bigbig.txt文件使其所属组用户具有写权限linux中的文件权限类、rwx 作用文件和目录的不同解释
linux中的chmod改变权限、修改bigbig.txt文件使其所属主用户只有读权限、修改bigbig.txt文件使其所属组用户具有写权限linux中的文件权限类、rwx 作用文件和目录的不同解释
linux中的chmod改变权限、修改bigbig.txt文件使其所属主用户只有读权限、修改bigbig.txt文件使其所属组用户具有写权限linux中的文件权限类、rwx 作用文件和目录的不同解释
|
存储 Oracle 关系型数据库
【Linux】文件与目录的默认权限与隐藏权限(1)
【Linux】文件与目录的默认权限与隐藏权限
145 0
【Linux】文件与目录的默认权限与隐藏权限(1)
|
存储 缓存 自然语言处理
【Linux】文件与目录的默认权限与隐藏权限(2)
【Linux】文件与目录的默认权限与隐藏权限
126 0
【Linux】文件与目录的默认权限与隐藏权限(2)