기본적으로 파일을 찾은 다음 크기별로 정렬합니다. 사람이 읽을 수있는 크기로 정렬하지 않으면 스크립트가 작동합니다. 그러나 크기를 사람이 읽을 수 있기를 원합니다. 사람이 읽을 수있는 크기를 어떻게 정렬 할 수 있습니까?
예를 들면 다음과 같습니다.
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
이제 크기를 사람이 읽을 수 있기를 원하므로 ls에 -h 매개 변수를 추가했으며 이제 일부 파일이 잘못되었습니다.
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출력 의 5 번째 열에 있다고 생각합니다
du대신에 사용 ls하는 것이 좋습니다.
find의 -printf그것과 %p와 %s(크기의 "인간화"뒤에) 포맷터.
-k 5— 어떻게 작동합니까?