我试图使用shell命令在Linux服务器上找到所有可读的目录和子目录,
我试过这个命令行:
find /home -maxdepth 1 -type d -perm -o=r
但是这个命令行只显示(
/
)目录中的可读文件夹,而不显示子目录。我想使用php或命令行
谢谢您
最佳答案
“但是这个命令行只显示(/)中的可读文件夹
目录而不是子目录“
当您将-maxdepth 1
设置为仅将find命令限制为/home
时,请将其删除以允许find递归搜索。
find /home -type d -perm -o=r
如果需要本机
php
解决方案,可以使用此glob_recursive
功能和is_writable
,即:<?php
function rglob($pattern, $flags = 0) {
$files = glob($pattern, $flags);
foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir) {
$files = array_merge($files, rglob($dir.'/'.basename($pattern), $flags));
}
return $files;
}
$dirs = rglob('/home/*', GLOB_ONLYDIR);
foreach( $dirs as $dir){
if(is_writable($dir)){
echo "$dir is writable.\n";
}
}
关于php - 如何在Linux上查找可读文件夹,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37220949/