Как найти читаемые папки на Linux

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

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

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

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

благодарю вас

0

Решение

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

Когда вы установите -maxdepth 1 вы ограничиваете команду поиска /home только, убери это разрешить поиск для поиска рекурсивно.

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]