大伟 查看Linux系统某个目录下的大于5M的所有文件 第2版

33 篇文章 6 订阅
// @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)
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值