按文件大小排序树

时间:2016-10-16 21:58:07

标签: bash shell unix command-line

我有一个包含图像的目录和子目录(在15个文件夹中共有525张图像)。

我使用tree -Csh列出并获取;

enter image description here

我现在要做的是按大小排序,因为我试图快速查看哪些文件太小(对于具有高分辨率图像的网站)。正如你所看到的,在这张图片中有一个774K的jpg,它太小但是这样排序很难把它们拿出来(完整输出很长)。 树是最好的解决方法吗?

1 个答案:

答案 0 :(得分:1)

使用GNU工具,从父目录:

find . -type f -iname '*.jpg' -printf '%s %p\0' | sort -z -k1,1rn | xargs -0 -n1
  • find . -type f -iname '*.jpg' -printf '%s %p\0'找到所有.jpg个文件(不区分大小写),并以字节为单位输出filesize作为第一个字段,将文件名输出为第二个字段,每个记录用NUL分隔,这是必需的处理带有换行符的文件名

  • sort -z -k1,1rn根据第一个字段以数字方式对NUL分隔的记录进行排序,反转以使较大尺寸的文件名显示在顶部

  • xargs -0 -n1打印带有降序大小的文件名