标签: du

在 Linux 上,当您不是 root 时,获取每个用户使用的磁盘空间

du --max-depth=1将给出您登录的用户的使用情况。但我们有一个由多个团队共享的开发盒,因此很难找到罪魁祸首。

如果我是 root,我可以做到这一点,但我不是 root 用户,并且不想一直要求系统管理员找到使用最多的用户。

请对此有任何想法。

linux storage disk du

2
推荐指数
1
解决办法
3663
查看次数

以纯兆字节显示 DU 结果

我正在使用DU函数将目录大小输出到文件,然后将其移动到 excel 文件以添加总数。是否可以仅以 MB 为单位输出目录的大小(即使大小以 KB 或 GB 为单位):

例如,如果文件大小为 50kb,则输出将显示 0.048MB

但是我知道,du -h如果大小大于 1024,我无法保持以 MB 为单位的大小,因为它切换到 1G。该du -m但是不显示M(兆字节)旁边的值,因此是不是真的人的友好。

提前致谢,J

linux bash redhat du

2
推荐指数
1
解决办法
1114
查看次数

格式化 du 命令输出

有没有办法格式化(在shell命令链中)以下输出 du -s -k *

287720  crm-cc
21500   crm-mvh
40360   elasticsearch-5.1.2
293292  electron-quick-start
44636   hexagon
193572  jpk
132 knights
209860  pink-panther
1722104 popc
4   server-config.txt
45392   sigb-backend
47468   test
58904   um-report
164156  zeus
Run Code Online (Sandbox Code Playgroud)

通过以下方式:

1,763,434,496 popc
  300,331,008 electron-quick-start
  294,625,280 crm-cc
  214,896,640 pink-panther
  198,217,728 jpk
  168,095,744 zeus
   60,317,696 um-report
   48,607,232 test
   46,481,408 sigb-backend
   45,707,264 hexagon
   41,328,640 elasticsearch-5.1.2
   22,016,000 crm-mvh
      135,168 knights
        4,096 server-config.txt
Run Code Online (Sandbox Code Playgroud)

我的意思是:

  • 按大小降序对文件/目录进行排序。
  • 从右边开始每三个字符插入一个千位分隔符。
  • 插入前导空格以将尺寸向右对齐

我已经在 PHP 中实现了这个,但我希望有一个更通用的解决方案(不是每个基于 linux 的操作系统都安装了 PHP 解释器)。

如果相关,我zsh大部分时间都在使用,因此解决方案可以仅限于此外壳。

shell formatting zsh du

2
推荐指数
1
解决办法
1180
查看次数

在什么情况下,文件通配符在 bash 中不起作用?

如果我在sudo du -sh <some_directory>/*需要 root 访问权限的目录上运行,它会工作并列出 . 然而,我发现至少有一种情况不会发生这种情况:

sudo du -sh /var/lib/docker/*

http://tldp.org/LDP/abs/html/globbingref.html没有提到任何预计这不起作用的场景。有谁知道为什么这可能行不通?它与 Docker 有关还是du与 globbing 完全有关。

unix bash glob du

2
推荐指数
1
解决办法
1365
查看次数

使用 Golang 获取目录磁盘使用情况

我尝试使用 golang 了解目录的磁盘使用情况,但下面的应用程序计算不正确。我不想用filepath.Walk。我尝试过os.Stat(),但没有获得实际的目录大小。我在下面分享了相关的代码语句,正确的目录信息和app的结果。

const (
    B  = 1
    KB = 1024 * B
    MB = 1024 * KB
    GB = 1024 * MB
)

type DiskStatus struct {
    All  uint64
    Free uint64
    Used uint64
}

func DiskUsage(path string) (ds DiskStatus) {
    fs := syscall.Statfs_t{}
    err := syscall.Statfs(path, &fs)
    if err != nil {
        return
    }
    ds.All = fs.Blocks * uint64(fs.Bsize)
    ds.Free = fs.Bfree * uint64(fs.Bsize)
    ds.Used = ds.All - ds.Free
    fmt.Println(path, ds.Used)
    return ds
}

func …
Run Code Online (Sandbox Code Playgroud)

go stat du

1
推荐指数
1
解决办法
539
查看次数

如何在 Linux 中列出目录中的文件和文件夹及其总大小?

在不显示所有子目录的情况下,我无法获得任何命令来列出目录中所有文件和文件夹及其总大小。例如我有一个目录

ls /home/kayan/data/
data-1 data-2 test.txt readme.txt
Run Code Online (Sandbox Code Playgroud)

这里 data-1 和 data-2 是两个文件夹,有很多子文件夹和文件。它们的实际大小是 123G 和 115G。

当我使用“du”命令时,它会列出所有子目录并花费太多时间。当我使用“ll”时,它没有显示包含子文件夹的文件夹的实际大小。我想要的是:

data-1 123G
data-2 115G
test.txt 12K
readme.txt 14K
Run Code Online (Sandbox Code Playgroud)

linux ls du linux-disk-free

0
推荐指数
1
解决办法
5427
查看次数

du命令和Python函数之间的文件大小差异

我有一个脚本,每晚运行一次,以将大量内容存储在服务器上的特定目录中。这是我用于该核心部分的功能:

def get_size(start_path = '.'):
    total_size = 0
    for dirpath, dirnames, filenames in os.walk(start_path):
        for f in filenames:
            try:
                fp = os.path.join(dirpath, f)
                total_size += os.path.getsize(fp)
                print str(total_size)+" bytes / "+str(size(total_size))+" counted"+" <------------ current position: "+start_path+" : "+f
                for location in locations_dict:
                    if locations_dict[location][1] != "":
                        print str(location)+": "+str(size(locations_dict[location][1]))
            except OSError, e:
                print e
    return total_size
Run Code Online (Sandbox Code Playgroud)

由于某些原因,当我手动运行时,我得到一个不同的值

$ du -hc [path to dir]
Run Code Online (Sandbox Code Playgroud)

使用Python,我得到20551043874445字节(转换为20.5 TB)。随着du我得到28 TB(我现在重新运行没有-h得到以字节为单位的值)。

显然,Python函数缺少某些内容,但是我不确定是什么或如何。有任何想法吗?

python size bash recursion du

0
推荐指数
1
解决办法
673
查看次数

总结目录的总文件大小有很大的不同:Ruby -e, du -ach, ls -al "total"

ls | ruby -ne 'BEGIN{a= []}; a <<  File.size($_.chomp).to_i; END{puts a.sum}'
Run Code Online (Sandbox Code Playgroud)

上面的代码获取每个文件的文件大小,将其放入一个数组中,并打印总和。

返回的值与:

du -ach
Run Code Online (Sandbox Code Playgroud)

并且这两个值与通过以下方式显示的总计非常不同:

ls -al
Run Code Online (Sandbox Code Playgroud)

没有隐藏文件。

苹果系统

ruby terminal ls filesize du

0
推荐指数
1
解决办法
80
查看次数

标签 统计

du ×8

bash ×3

linux ×3

ls ×2

disk ×1

filesize ×1

formatting ×1

glob ×1

go ×1

linux-disk-free ×1

python ×1

recursion ×1

redhat ×1

ruby ×1

shell ×1

size ×1

stat ×1

storage ×1

terminal ×1

unix ×1

zsh ×1