2016-05-13 3 views
0

им пытается найти все читаемые каталоги и subdurectories на сервере Linux с помощью команды оболочки, я попробовал эту командную строку:Как найти читаемые папки на Linux

find /home -maxdepth 1 -type d -perm -o=r 

, но эта командная строка показывает мне только для чтения папки (/), а не подкаталоги.

Я хочу сделать это с помощью PHP или командной строки

спасибо

+2

Если вы хотите подкаталоги, просто удалить '1' -maxdepth –

+0

хорошая идея Я нахожу список каталогов при применении этой командной строки, но когда я хочу получить доступ или прочитать эту директиву, скажите мне, что (не удается открыть эту папку!) это любое Идея сделать это с помощью php-скрипта, например, прыгать или что-то подобное – walidz

+0

. Хорошая идея отметить ответы как правильные и не размещать комментарии в качестве ответов -> ~ http: //stackoverflow.com/a/37220868/797495. Я могу удалить эти «ответы», или вы отступите от него;) –

ответ

0

", но эта командная строка показывает мне только считываемые папки (/) каталогов и не подкаталоги тоже "

При установке -maxdepth 1 вы ограничиваете команду поиска, чтобы /home only, удалить, чтобы найти поиск по рекурсивно.

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"; 
    } 
} 
+0

Да, сэр спасибо – walidz