// @Title main
// @Description 帮同事写的一个工具:查看Linux某个目录下所有文件,并列出大于5M的所有文件。
// @Author wangwei 2022-08-29 16:00
// @Update wangwei 2022-08-30 08:00
package main
import (
"flag"
"fmt"
"io/ioutil"
"sort"
)
var f string
var m = make(map[string]int64)
// @title GetFiles
// @description 递归读取文件大小,写入map。
// @auth 汪伟 2022-08-29 16:00
// @param folder string "传入目录"
// @return m map[string]int64 "返回以文件为key文件大小为value的map"
func GetFiles(folder string) {
files, _ := ioutil.ReadDir(folder)
for _, file := range files {
if file.IsDir() {
GetFiles(folder + "/" + file.Name())
} else {
if file.Size() > 5242880 {
m[folder+"/"+file.Name()] = file.Size() / 1024
}
}
}
}
func init() {
flag.StringVar(&f, "f", ".", "The specified directory")
}
func main() {
flag.Parse()
GetFiles(f)
// 对map值排序
type t struct {
File string
Size int64
}
var listT []t
for k, v := range m {
listT = append(listT, t{k, v})
}
sort.Slice(listT, func(i, j int) bool {
return listT[i].Size > listT[j].Size
})
// 打印
for _, v := range listT {
fmt.Printf("%-25d%s\n", v.Size, v.File)
}
}
大伟 查看Linux系统某个目录下的大于5M的所有文件 第2版
最新推荐文章于 2022-11-14 11:42:04 发布