package main import ( "fmt" "os/exec" "strconv" "strings" ) func GetDirectoryDiskUsed(directories []string) (uint64, error) { fmt.Println(strings.Join(directories, " ")) cmd := exec.Command("du", "-s", strings.Join(directories, " ")) output, err := cmd.CombinedOutput() if err != nil { return 0, err } lines := strings.Split(string(output), "\n") fmt.Println(lines) sum := uint64(0) for _, line := range lines { fields := strings.Fields(line) parseUint, err := strconv.ParseUint(fields[0], 10, 64) fmt.Println("parseUint", parseUint) if err != nil { 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) }