Posted by & filed under 每日一题.

【四脚猫】每日一题(3月21日) :找出Linux下指定目录中最大的10个文件,不限制方法。

可以用PHP,Shell,难道你用JS也行?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*爽歪歪PHP版本*/
<?php

$all_file = array();
function get_max_file($dir) {
    $list = scandir($dir);
    foreach ( $list as $file ) {
        $file_location = $dir . '/' . $file;
        if ( is_dir($file_location) && $file != "." && $file != ".." ) {
            get_max_file($file_location);
        } elseif ( $file_location ) {
            if ( $file != '.' && $file != '..' ) {
                $file_size = filesize($file_location);
                $GLOBALS['all_file'][$file_location] = $file_size;
            }
        }
    }
}
get_max_file('./');
arsort($all_file);
$max_size = array_slice($all_file, 0, 10);
var_dump($max_size);

# blacktree的shell版本

1
find . -type f -exec du -k {} \; | sort  -nrk 1 | head

利用find替du将文件过滤出来,无需使用du进行递归遍历,这个命令执行的结果不会包含目录。

欢迎各位攻城狮,各位大牛给每日一题投稿,大家可以把自己碰到的有趣问题,工作中碰到的难题等…发送到 稿件邮箱:2313427189@qq.com