내 임무는 주어진 특정 디렉토리에서 파일을 찾고, 100MB가 넘는 파일만 표시하고, 크기별로 정렬하고, ls -lh 형식으로 인쇄하는 것입니다.
이것이 내가 실행한 것입니다:
find /home/it21366 -size +10M | sort -h | ls -lh
이게 내가 얻은 거야
-rwxr-xr-x+ 1 it21366 unixusers 12K Απρ 28 2014 a.out
-rwxr-xr-x+ 1 it21366 unixusers 471 Νοέ 29 10:51 askisi.sh
-rw-r--r--+ 1 it21366 unixusers 3,0K Απρ 28 2014 code.c
-rw-r--r--+ 1 it21366 unixusers 3,0K Απρ 28 2014 code.c~
-rw-r--r--+ 1 it21366 unixusers 6,2K Απρ 28 2014 CODE.txt
-rw-------+ 1 it21366 unixusers 2,0M Απρ 28 2014 core
-rwxr-xr-x+ 1 it21366 unixusers 66 Δεκ 6 14:39 it21366_ex_1_1
-rwxr-xr-x+ 1 it21366 unixusers 190 Δεκ 6 14:35 it21366_ex_1_4.sh
-rwxr-xr-x+ 1 it21366 unixusers 190 Δεκ 6 14:27 it21366_ex_1_4.sh~
-rwxr-xr-x+ 1 it21366 unixusers 546 Δεκ 5 17:46 it21366_ex_1_5
-rw-r--r--+ 1 it21366 unixusers 509K Οκτ 23 2014 java01.pdf
-rw-r--r--+ 1 it21366 unixusers 506K Οκτ 23 2014 java02.pdf
-rw-r--r--+ 1 it21366 unixusers 249K Οκτ 11 10:03 lab01_2018-19.pdf
-rw-r--r--+ 1 it21366 unixusers 1,2K Οκτ 24 16:27 MyClock.java
-rw-r--r--+ 1 it21366 unixusers 1,3K Οκτ 30 2013 starthere.desktop
-rw-r--r--+ 1 it21366 unixusers 3 Οκτ 24 12:45 test
-rw-r--r--+ 1 it21366 unixusers 12 Οκτ 24 12:45 TK.txt
-rw-r--r--+ 1 it21366 unixusers 14K Μάι 30 2018 Untitled 1.odt
LS가 왜 다른 방법을 무시하고 정렬되지 않고 필터링되지 않은 파일 내용만 표시하는지 상상할 수 없습니다.
답변1
xargs를 사용하십시오:
find /home/it21366 -size +10M | xargs ls -lhsSr
답변2
또 다른 옵션은 파일 수가 한 번의 (긴) 호출에 들어갈 만큼 제한되어 있는 경우 큰 파일을 찾아서 다음과 같이 정렬하는 ls
것입니다 .find
ls -S
find /home/it21366 -type f -size +10M -exec ls -lS {} + 2>/dev/null
"발견된" 파일을 가능한 한 많은 일치 항목 에 대한 호출로 바꾸도록 -exec ... {} +
지시 합니다 . 파일이 너무 많으면 여러 번 호출을 받게 되어 결과가 정렬되지 않은 상태가 됩니다(그룹별로 정렬됩니다). 또한 일치 항목을 일반 파일로 제한하는 기능 도 추가했습니다 .find
ls
ls
-type f