我有一个非常大的存储磁盘(16T).我想在它上运行'du'来计算每个子目录占用多少.但是,这需要很长时间.幸运的是,我拥有一组计算机.因此,我可以并行运行'du',每个作业都在一个单独的子目录中运行,并编写一个简单的脚本来执行该操作.是否有这样的事情或者我必须自己写吗?
我在布局中的文件夹中散布了一堆文件,例如:
dir1/somefile.gif
dir1/another.mp4
dir2/video/filename.mp4
dir2/some.file
dir2/blahblah.mp4
Run Code Online (Sandbox Code Playgroud)
我需要找到仅用于MP4文件的总磁盘空间.这意味着它必须以某种方式递归.
我看着du并摆弄着管道的东西,grep但似乎无法弄清楚如何计算MP4文件,无论它们在哪里.
如果可能的话,人类可读的总磁盘空间输出也是必须的,最好是GB.
有任何想法吗?谢谢
我有一大堆目录,我正在尝试计算几百个.txt文件的总和大小.我试过这个,主要是有效的:
find . -name *.txt | xargs du -hc
Run Code Online (Sandbox Code Playgroud)
但是,不是在最后给我一个,我得到几个.我的猜测是,管道一次只能传递如此多的查找输出行,而du只是在每个批处理中运行.有没有解决的办法?
谢谢!亚历克斯
我试图让Linux的一个目录的大小,但它有很多子目录,似乎采取永远给我的答案是什么大小之前要经过所有这些文件和目录.我搜索了帮助和手册输入和在线,但找不到任何东西.是否真的必须在扫描时输出每个目录?有没有办法加快这个过程?通常使用其他命令,您只需使用"-q"安静模式开关即可.
Windirstat/Kdirstat/Disk Inventory X在文件管理方面一直是革命性的.为什么没有纯文本命令行等效?我需要它来管理我的文件服务器.
我们有所有的构建块:du,tree等.
有吗?为什么不?有人可以写一个吗?:)
编辑:du几乎完成我想要的.我想要的是按大小(而不是完整路径)和缩进对每个子目录进行排序,以便更容易避免重复计算.杜会给我这个:
cd a
du . -h
1G b
2G c
1K c/d
1K c/e
2G c/f
Run Code Online (Sandbox Code Playgroud)
c和c/f重叠并不是很明显.我想要的是这个:
cd a
dir_stats .
1G b
2G c
|
+---- 2G f
|
+---- 1K d
|
+---- 1K e
Run Code Online (Sandbox Code Playgroud)
很明显f的2G是因为c的2G.我可以更容易地找到与c无关的所有信息(即只扫描第一列).
我正在尝试对当前目录中的每个目录使用du命令.所以我试图使用这样的代码:
ls | du -sb
Run Code Online (Sandbox Code Playgroud)
但它没有按预期工作.它仅输出当前'.'的大小.目录,那就是全部.回声同样如此
ls | echo
Run Code Online (Sandbox Code Playgroud)
输出空行.为什么会这样?
我有一个文件,其中
du -b filename给出67108864作为答案(应该以字节为单位),而
du filename给出65604(应该以千字节为单位)。
但是,它应该67108864/1024 = 65536作为答案返回。
我查看了 man 条目du,但找不到答案。
我缺少什么?
我在 64 位机器上运行 Ubuntu 版本 12.04。
我正在编译自定义内核,我想测试图像文件的大小.这些是结果:
ls -la | grep vmlinux
-rwxr-xr-x 1 root root 8167158 May 21 12:14 vmlinux
du -h vmlinux
3.8M vmlinux
size vmlinux
text data bss dec hex filename
2221248 676148 544768 3442164 3485f4 vmlinux
Run Code Online (Sandbox Code Playgroud)
由于它们都显示不同的尺寸,哪一个最接近实际图像尺寸?他们为什么不同?
我有一个vps切片运行centos 5.5我应该有15演出的磁盘空间,但根据df它似乎加倍我的磁盘空间使用.
当我du -skh *以/ root身份运行时,我得到:
[root@yardvps1 /]# du -skh *
0 aquota.group
0 aquota.user
5.2M bin
4.0K boot
4.0K dev
4.9M etc
2.5G home
12M lib
14M lib64
4.0K media
4.0K mnt
299M opt
0 proc
692K root
23M sbin
4.0K selinux
4.0K srv
0 sys
48K tmp
2.0G usr
121M var
Run Code Online (Sandbox Code Playgroud)
这与我上传到机器的内容一致,最多可增加约5gig.
但是,当我跑,df我得到:
[root@yardvps1 /]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/simfs 15728640 11659048 4069592 75% /
none 262144 4 262140 1% …Run Code Online (Sandbox Code Playgroud) 我想检查一下git存储库的总大小.有趣的是,当发送-h标志时,du给了我两个不同大小的国王.它实际上是双倍大小.
为什么是这样?什么是正确的尺寸?
MyMac:~/repositories/my-repo.git davidrod$ du -h
0B ./branches
64K ./hooks
4.0K ./info
0B ./objects/info
3.3M ./objects/pack
3.3M ./objects
4.0K ./refs/heads
8.0K ./refs/tags
12K ./refs
3.3M .
MyMac:~/repositories/my-repo.git davidrod$ du
0 ./branches
128 ./hooks
8 ./info
0 ./objects/info
6672 ./objects/pack
6672 ./objects
8 ./refs/heads
16 ./refs/tags
24 ./refs
6856 .
Run Code Online (Sandbox Code Playgroud)