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)
目录
相关文章
|
8月前
|
安全 Unix Linux
在Python中,如何处理文件和目录的访问权限?
【2月更文挑战第15天】【2月更文挑战第43篇】在Python中,如何处理文件和目录的访问权限?
294 0
|
8月前
|
存储 Linux Shell
python移除/删除非空文件夹/目录的最有效方法是什么?
python移除/删除非空文件夹/目录的最有效方法是什么?
88 0
if双份分枝判断是否有benet目录没有创建存在提示已经创建目录
if双份分枝判断是否有benet目录没有创建存在提示已经创建目录
51 1
|
安全 Linux
6.4 文件与目录的默认权限与隐藏权限
6.4 文件与目录的默认权限与隐藏权限
94 0
|
Unix Linux PHP
php获取文件的权限信息(获取权限信息、返回字符串涵义、二进制的转换方式、权限修改)
php获取文件的权限信息(获取权限信息、返回字符串涵义、二进制的转换方式、权限修改)
209 0
|
Go Python
Go-文件目录操作分类详解(创建、打开、关闭、读取、写入、判断等)
Go-文件目录操作分类详解(创建、打开、关闭、读取、写入、判断等)
448 0
Go-文件目录操作分类详解(创建、打开、关闭、读取、写入、判断等)
|
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 关系型数据库
如果$GRID_HOME或$GRID_BASE或u01目录下的所有文件权限被人为误操作修改了,那么如何来修复该权限问题?
如果$GRID_HOME或$GRID_BASE或u01目录下的所有文件权限被人为误操作修改了,那么如何来修复该权限问题?
432 0