Я в основном ищу файлы, затем сортирую по размеру. Сценарий работает, если я не сортирую размер по удобочитаемому человеку. Но я хочу, чтобы размер был удобочитаемым. Как я могу сортировать размеры, удобочитаемые человеком?
Например:
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
- как это работает?