我尝试使用对文件进行排序sort -h
algorithms@algorithms:~$ ls -lh /boot | sort -h
drwxr-xr-x 5 root root 4.0K Dec 28 16:19 grub
-rw------- 1 root root 4.2M Dec 5 13:10 System.map-4.18.0-13-generic
-rw------- 1 root root 4.2M Nov 14 21:30 System.map-4.18.0-12-generic
-rw------- 1 root root 8.2M Dec 5 13:11 vmlinuz-4.18.0-13-generic
-rw------- 1 root root 8.2M Nov 14 21:50 vmlinuz-4.18.0-12-generic
-rw-r--r-- 1 root root 1.5M Nov 14 21:30 abi-4.18.0-12-generic
-rw-r--r-- 1 root root 179K Jan 28 2016 memtest86+.bin
-rw-r--r-- 1 root root 17 Nov 14 21:30 retpoline-4.18.0-12-generic
-rw-r--r-- 1 root root 181K Jan 28 2016 memtest86+.elf
-rw-r--r-- 1 root root 181K Jan 28 2016 memtest86+_multiboot.bin
-rw-r--r-- 1 root root 212K Dec 5 13:10 config-4.18.0-13-generic
-rw-r--r-- 1 root root 212K Nov 14 21:30 config-4.18.0-12-generic
-rw-r--r-- 1 root root 38M Dec 18 15:47 initrd.img-4.18.0-12-generic
-rw-r--r-- 1 root root 38M Dec 28 16:25 initrd.img-4.18.0-13-generic
但是,它没有合理排序。
参考手册:
-h, --human-numeric-sort
compare human readable numbers (e.g., 2K 1G)
我的使用有什么问题吗?
答案1
根据您的问题,您还必须提供列号,即
ls -lh /boot | sort -hk5
现在它将根据第 5 列(即表示大小的列)对输出进行排序。
这里用的h
是,如果使用命令ls -lh /boot | sort -nk5
,那么它会按照数字排序,不考虑K,M,G
,如果使用h
选项,那么它会考虑K,M,G
。
如果你想排序,那么更好的选择是ls -lhS /boot
roaima 建议的。