я пытаюсь найти все читаемые каталоги и подкаталоги на сервере Linux с помощью команды оболочки,
я пробовал эту командную строку:
find /home -maxdepth 1 -type d -perm -o=r
но эта командная строка показывает мне только читаемые папки в (/
) каталоги, а не подкаталоги тоже.
Я хочу сделать это с помощью PHP или командной строки
благодарю вас
«но эта командная строка показывает мне только читаемые папки в (/)
каталоги, а не подкаталоги тоже«
Когда вы установите -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";
}
}
Других решений пока нет …