0
即時試圖找到使用shell命令Linux服務器上的所有可讀的目錄和subdurectories, 我已經試過此命令行:如何找到在Linux上讀取文件夾
find /home -maxdepth 1 -type d -perm -o=r
,但這個命令行告訴我只是可讀(/
)目錄中的文件夾,而不是子目錄。
我想這樣做,使用PHP或命令行
謝謝
即時試圖找到使用shell命令Linux服務器上的所有可讀的目錄和subdurectories, 我已經試過此命令行:如何找到在Linux上讀取文件夾
find /home -maxdepth 1 -type d -perm -o=r
,但這個命令行告訴我只是可讀(/
)目錄中的文件夾,而不是子目錄。
我想這樣做,使用PHP或命令行
謝謝
「但這個命令行告訴我剛剛在(/) 目錄中讀取文件夾,而不是子目錄太「
當您設置-maxdepth 1
時,您將find命令限制爲/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";
}
}
是的先生謝謝 – walidz
如果你想子目錄,只是刪除'-maxdepth 1' –
好主意我找到應用此命令行時的目錄列表,但是當我想要訪問或閱讀此導演時,它告訴我(無法打開此文件夾!) 其他想法做到這一點與PHP腳本像跳躍或類似的東西 – walidz
它是一個好主意,以標記答案是正確的,而不是張貼評論作爲答案 - >〜http://stackoverflow.com/a/37220868/797495。我可能想刪除這些「答案」,否則你會得到downvoted;) –