Я в основному шукаю файли, а потім сортую за розміром. Сценарій працює, якщо я не сортую розмір за людським читанням. Але я хочу, щоб розмір був читабельним для людини. Як можна сортувати розміри, які читаються людиною?
Наприклад:
ls -l | sort -k 5 -n | awk '{print $9 " " $5}'
Це працює, як очікувалося, розмір моїх файлів у байтах зростає:
1.txt 1
test.txt 3
bash.sh* 573
DocGeneration.txt 1131
andres_stuff.txt 1465
Branches.xlsx 15087
foo 23735
bar 60566
2016_stuff.pdf 996850
Тепер я хочу, щоб розмір був читабельним для людини, тому я додав параметр -h до ls, і тепер деякі файли вийшли з ладу:
ls -lh | sort -k 5 -n | awk '{print $9 " " $5}'
1.txt 1
DocGeneration.txt 1.2K
andres_stuff.txt 1.5K
test.txt 3
Branches.xlsx 15K
foo 24K
bar 60K
bash.sh* 573
2016_stuff.pdf 974K
ls
результату
du
замість ls
може бути хорошою ідеєю.
find
's -printf
з його %p
та %s
форматерами (з подальшим «гуманізацією» розмірів).
-k 5
- як це працює?