package main import ( "fmt" "os/exec" "strconv" "strings" ) func GetDirectoryDiskUsed(directories []string) (uint64, error) { cmd := exec.Command("du", "-s") cmd.Args = append(cmd.Args, directories...) output, err := cmd.CombinedOutput() if err != nil { fmt.Println(err) return 0, err } lines := strings.Split(string(output), "\n") sum := uint64(0) for _, line := range lines { if len(line) > 0 { fmt.Println(line) fields := strings.Fields(line) parseUint, err := strconv.ParseUint(fields[0], 10, 64) fmt.Println("parseUint", parseUint) if err != nil { fmt.Println(err) return 0, err } sum += parseUint } } return sum, nil } func main() { diskUsed, err := GetDirectoryDiskUsed([]string{"/root/cicv-data-closedloop", "/root/pjirobot/data/cicv-data-closedloop"}) if err != nil { return } fmt.Println("diskUsed", diskUsed) }