我想以列表格式获取目录及其大小的列表,就像执行ls -l
.
问题是有一个单行命令可以做到这一点吗?我看到其他人有很长的命令只是为了输出这个。那太长了。
什么命令可以执行此操作或可以轻松键入的命令组合?du -h
给了它,但它显示了所有不是我想要的子文件夹。只是当前目录文件夹。
du
并且df
很好,但我不知道如何过滤它们提供的数据,就像我使用SequoiaView 一样。我想一目了然地知道哪些是最大的文件夹和最大的文件。
在 C-Shell 中,如何获得与du -sh ./*
不列出根目录中的文件相同的输出,即仅列出 ./ 中的子目录及其所有内容的大小?
我正在尝试清理多年来积累的各种垃圾的硬盘驱动器。du
有助于减少磁盘使用量,但整个事情仍然很笨拙,不是因为总大小,而是因为文件和目录的总数。
有没有办法我可以做一些类似du
但不计算文件大小的事情,而是计算文件和目录的数量?例如:一个文件是1,一个目录是它里面的文件/目录的递归数+1。
编辑:我应该更清楚。我想不仅知道的文件/目录总数/
,而且在/home
,/usr
等,并在其子目录,递归,如du
确实为大小。
如何使用 UNIX/Linux 标准工具获取实际目录大小?
替代问题:如何让du向我显示实际目录大小(而不是磁盘使用情况)?
由于人们似乎对术语“大小”有不同的定义:我对“目录大小”的定义是该目录中所有常规文件的总和。
我不关心目录 inode 的大小或文件在相应文件系统上占用的任何大小(块 * 块大小)。一个包含 3 个文件的目录,每个文件 1 个字节,目录大小为 3 个字节(根据我的定义)。
使用 du 计算目录大小似乎不可靠。
例如,mkdir foo && du -b foo
报告“4096 foo”,4096 字节而不是 0 字节。对于非常大的目录,报告的目录大小du -hs
可能会减少 100 GB (!) 甚至更多(压缩文件系统)。
那么必须使用什么(工具/选项)来获取实际目录大小?
我正在做一个应该将文件夹的大小设置为变量的applescript。这是到目前为止的代码:
set sizeVar to do shell script "du -skh -m /Users/JS_Admin/Desktop"
Run Code Online (Sandbox Code Playgroud)
输出:
"4242 /Users/JS_Admin/Desktop"
Run Code Online (Sandbox Code Playgroud)
问题是我只想要数字的大小,没有空间或目录位置。
我怎么做?
我想将一个包含大量文件的目录复制到另一个目的地。我做了:
cp -r src_dir another_destination/
Run Code Online (Sandbox Code Playgroud)
然后我想确认目标目录的大小和原来的一样:
du -s src_dir
3782288 src_dir
du -s another_destination/src_dir
3502320 another_destination/src_dir
Run Code Online (Sandbox Code Playgroud)
然后我想到可能有几个符号链接没有跟在cp
命令后面并添加了-a
标志:
-a 与 -pPR 选项相同。保留文件的结构和属性,但不保留目录结构。
cp -a src_dir another_destination/
Run Code Online (Sandbox Code Playgroud)
但du -s
给了我同样的结果。有趣的是,源和目标都具有相同数量的文件和目录:
tree src_dir | wc -l
4293
tree another_destination/src_dir | wc -l
4293
Run Code Online (Sandbox Code Playgroud)
我做错了什么,我用du
命令得到了不同的大小?
更新
当我尝试使用du
命令获取单个目录的大小时,我得到了不同的结果:
du -s src_dir/sub_dir1
1112 src_dir/sub_dir1
du -s another_destination/src_dir/sub_dir1
1168 another_destination/src_dir/sub_dir1
Run Code Online (Sandbox Code Playgroud)
当我查看带有 的文件时ls -la
,单个文件大小相同但总数不同:
ls -la src_dir/sub_dir1
total 1168
drwxr-xr-x 5 hirurg103 staff 160 Jan 30 20:58 …
Run Code Online (Sandbox Code Playgroud) 我的服务器上有一个网站,我拥有它。
该网站的大小约为 170GB。这不应该是这么多。最多应该在 20GB 左右。我不知道是什么让它这么大。
我想弄清楚哪个目录的大小如此之大,但我也做不到。
我检查了数据库大小,大约 500 MB。
请帮我找出对此负责的主目录。
执行ps ux
返回一个很好的进程信息列表,很容易grep
通过 或watch
。但是,内存使用输出似乎没有太大的灵活性;的RSS
(驻留集大小)被印刷在KB,这对于大的流程是难以阅读(尤其是一目了然),和%MEM
给出100
× RSS
/ system_memory
。
该du
实用程序有一个可爱的-h
标志,可以以更加用户友好的方式打印空间。我一直无法找到任何等效的ps
. 有没有特殊的格式化技巧可以做到这一点?
我想查看自己在特定文件系统上的总磁盘使用量。我执行了命令
du -h ~my_user_name
Run Code Online (Sandbox Code Playgroud)
但是,这列出了my_user_name
. 我想获得所有这些信息的总和。通过的合适选项是什么?我试过
du -h -c ~my_user_name
Run Code Online (Sandbox Code Playgroud)
但这没有用。
du ×10
linux ×6
disk-space ×3
unix ×3
applescript ×1
bash ×1
centos ×1
command-line ×1
cp ×1
df ×1
filesystems ×1
gnu ×1
inode ×1
mac ×1
macos ×1
memory ×1
memory-usage ×1
ps ×1
shell ×1