- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我编写了一个简单的 shell 脚本来查找大文件,主要是为了节省我自己的输入时间。这项工作正在完成:
find $dir -type f -size +"$size"M -printf '%s %p\n' | sort -rn
我想将字节输出转换为人类可读的格式。我在网上找到了如何手动执行此操作的方法,例如,
find $dir -type f -size +"$size"M -printf '%s %p\n' | sort -rn |
awk '{ hum[1024**4]="TB"; hum[1024**3]="GB"; hum[1024**2]="MB"; hum[1024]="KB"; hum[0]="B";
for (x=1024**4; x>=1024; x/=1024){
if ($1>=x) { printf "%7.2f %s\t%s\n",$1/x,hum[x],$2;break }
}}'
但这看起来很乱。我想知道:是否有一种标准方法可以将字节转换为人类可读的形式?
当然,也欢迎使用任何生成以下输出的替代方法,给定目录和最小大小作为输入:
1.25 GB /foo/barf
598.80 MB /foo/bar/bazf
500.58 MB /bar/bazf
421.70 MB /bar/baz/bamf
...
注意:这必须在 2.4 和 2.6 上都有效,并且输出应该排序。
最佳答案
使用du -h
和sort -h
find /your/dir -type f -size +5M -exec du -h '{}' + | sort -hr
解释:
du -h file1 file2 ...
以 human 可读格式打印 disk usage给定的文件。sort -hr
以r相反的顺序对 human 可读数字进行排序(首先是较大的数字)。 find -exec
的选项+
将减少命令du
的调用次数,从而加快执行速度。这里的+
可以替换成';'
。如果您希望在最后打印较大的文件,您可以删除 sort
命令的选项 -r
。您甚至可以使用更简单的以下命令,但您的终端窗口缓冲区可能已满!
find /your/dir -type f -exec du -h '{}' + | sort -h
或者如果您只想要前十个较大的文件:
find /your/dir -type f -exec du -h '{}' + | sort -hr | head
注意 sort
的选项 -h
大约在 2009 年引入,因此这个选项在旧发行版上可能不可用(因为红帽 5).此外,find -exec
的选项 +
在旧发行版(如 Red Hat 4)上也不可用。
在旧发行版上,您可以使用 xargs
代替 find -exec
的选项 +
。命令 ls
也可用于打印排序的文件。但要保证按大小排序,xargs
必须仅调用一次ls
。如果您的文件数量可以接受,xargs
只能调用一次 ls
:这取决于传递给 ls
参数的文本长度(所有文件名的总和长度)。
find /your/dir -type f -size +5M -print0 | xargs -0 ls -1Ssh
(从 MichaelKrelin-hacker 中借鉴了一点灵感)。
解释:
ls -1
每行显示一个文件ls -S
按文件大小排序ls -s
打印文件大小ls -h
以人类可读的格式打印尺寸最快的命令可能是使用上面的 ls -1Ssh
和 find -exec
的 +
选项,但与上面的文件数量一样必须可接受仅调用一次 ls
以保证按大小排序(find -exec
的选项 +
> 与 xargs
的工作方式大致相同。
find /your/dir -type f -size +5M -exec ls -1Ssh '{}' +
要减少找到的文件数量,您可以增加阈值大小:例如将 +5M
替换为 +100M
。
关于linux - 命令打印大文件,排序,大小为人类可读格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8943154/
有没有一种方法(程序、库)可以大致了解文档是用哪种语言编写的? 我有一堆混合语言的文本文档(~500K),需要导入支持 i18n 的 CMS (Drupal).. 我不需要完美的匹配,只需要一些猜测。
Closed. This question needs details or clarity。它当前不接受答案。
使用 UTF-8 编码。 (Multiple languages in one HTML page)。 跨不同浏览器(包括 iPad 上的 Safari)在单个网页上正确显示多种人类语言的最佳做法是什
我有一个完全可用的代码,它是为 Windows 编写的,是用 Visual Studio 构建的。 我想做的是为该软件添加另一种语言。我的想法是在窗口角落放置两个标志(一个英语和一个德语),并在用户点
我刚刚得到一个脚本,我想对其进行一些更改,我正在寻找某人为我开发一份自由职业,以使我将提供的加载字符串可读以进行编辑。 Lua代码是这样的: ------------------------- ENG
有没有不是简单逐字翻译的语言翻译项目?一个具有先进算法/设计的? 目前主流和流行的翻译软件,例如谷歌翻译,似乎是查找一个词或一组连续的词,然后将其直接翻译成不知何故确定为最佳匹配的内容。但是因为它不是
基于 Twilio 的人类/非人类检测 - 我正在尝试通过如下所示的代码来检测调用是否被人类或机器人接听 HashMap params = new HashMap(); params.put("Fro
这是目前(不确定)我能想到的处理多语言网站的最佳方式,它不涉及 gettext、zend_translate 或任何 php 插件或框架。 我认为它非常简单:我有 3 种语言,我将它们的“内容”写在不
我是一名优秀的程序员,十分优秀!