Bash - 按名称和大小列出和排序文件及其大小

标签 bash sorting size


我想弄清楚如何按名称和大小对文件列表进行排序。
如何使用“du -a”按文件名和大小排序而不显示目录?

使用“du -a

1   ./locatedFiles
0   ./testDir/j.smith.c
0   ./testDir/j.smith
1   ./testDir/sampleFunc/arrays
2   ./testDir/sampleFunc
0   ./testDir/j.smith.txt
0   ./testDir/testing
0   ./testDir/test2
0   ./testDir/test3
0   ./testDir/test1
0   ./testDir/first/j.smith
0   ./testDir/first/test
1   ./testDir/first
1   ./testDir/second
1   ./testDir/third
6   ./testDir

如何列出没有目录的所有文件,添加文件大小,并先按文件名排序,然后按大小排序?

谢谢你的帮助

最佳答案

你可以使用这个:

find -type f -printf "%f  %s %p\n"|sort

解释:

  • -键入 f 仅查找文件
  • -printf 以特定格式打印输出:
    • %f 打印文件名
    • %s 打印文件大小
    • %p 打印整个文件名(即带前导文件夹)- 如果需要可以省略此部分

然后运行按上面给出的顺序排序的排序(即文件名,然后是文件大小,然后是文件路径)。输出将是这样的(显示的部分输出):

...
XKBstr.h 18278 ./extensions/XKBstr.h
XlibConf.h 1567 ./XlibConf.h
Xlib.h 99600 ./Xlib.h
Xlibint.h 38897 ./Xlibint.h
Xlocale.h 1643 ./Xlocale.h
xlogo11 219 ./bitmaps/xlogo11
....

希望对你有帮助

关于Bash - 按名称和大小列出和排序文件及其大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9755068/

相关文章:

c++ - 手动调整窗口大小后 QGraphicsScene 宽度/高度没有改变

size - 哈希表的最大大小应该是多少?

bash - 取消由 matlab 启动的 unix 进程

bash - Docker ubuntu 镜像 - bash : man: command not found

python - 根据给定顺序对列表进行排序

WPF - 采用父级的大小

linux - 在 Bash 中通过正则表达式从字符串中删除后缀?

bash - 在 bash 脚本中获取调用者脚本的名称

java - 如何跟踪 Java 中插入排序算法实现的持续时间?

mongodb:建模用户定义的排序顺序