강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

파일내용정렬 마법사 sort 실무6편: 디렉토리내의 파일들의 용량을 기준으로 정렬하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

파일내용정렬 마법사 sort 실무6: 디렉토리내의 파일들의 용량을 기준으로 정렬하기

 

 

 

 

 

이번에는 특정 디렉토리내에 존재하는 많은 파일들을 각각의 용량을 기준으로 하여 오름차순 정렬과 내림차순 정렬을 해보도록 하겠다.

 

 

 

 용량이 큰 파일부터 차례대로 나열하거나 용량이 작은 파일부터 차례대로 나열하는 방법들을 보도록 하겠다.

 

 

 

 이 방법은 시스템관리자들이 주로 사용할 수 있는 유용한 사용법이다.

 

 

 

 흔히 /etc /var/log등의 디렉토리에서 "ls -l"의 결과를 정렬하거나 특정 필드를 대상으로 정렬해야 하는 경우가 있다.

 

 

 

 

 

다음 예는 현재 디렉토리에서 용량크기 순으로 오름차순 정렬을 한 것이다.

 

 

 

 ls -l의 결과에서 각 행의 다섯번째 필드가 용량을 나타내므로 "-k 5"라는 옵션을 사용하여 정렬한 것이다.

 

 

 

 

 

[root@sulinux ~]# ls -l /var/log | sort -k 5

합계 1672

-rw------- 1 root root      0 2022-12-01 21:54 tallylog

-rw------- 1 root root      0 2022-12-01 21:55 spooler-20081219

-rw-r--r-- 1 root root      0 2022-12-01 22:23 wpa_supplicant.log

-rw-r--r-- 1 root root      0 2022-12-01 22:26 yum.log

-rw------- 1 root root      0 2022-12-19 04:02 spooler-20081223

-rw------- 1 root root      0 2022-12-23 04:02 spooler

-rw-r--r-- 1 root root     91 2022-12-22 23:03 spacefile

drwxr-xr-x 2 ntp  ntp    4096 2022-10-08 20:23 ntpstats

drwxrwx--T 2 root gdm    4096 2022-12-04 20:26 gdm

drwxr-xr-x 2 lp   sys    4096 2022-12-23 04:02 cups

-rw------- 1 root root   1574 2022-12-24 20:41 maillog

-rw------- 1 root utmp   1920 2022-12-03 23:40 btmp

-rw------- 1 root root   2280 2022-12-23 04:02 maillog-20081223

-rw-r--r-- 2 root root   2285 2022-12-18 23:00 boot.log-20081219

-rw-r--r-- 1 root root   2285 2022-12-23 02:09 boot.log-20081223

-rw-r--r-- 1 root root   2285 2022-12-24 20:41 boot.log

-rw------- 1 root root   2533 2022-12-24 20:42 secure

-rw------- 1 root root   3758 2022-12-23 04:02 cron-20081223

drwxr-xr-x 2 root root   4096 2022-08-02 13:22 dirmngr

drwx------ 2 root root   4096 2022-08-29 06:48 ppp

drwxr-xr-x 2 root root   4096 2022-10-02 23:32 vbox

drwxr-xr-x 2 root root   4096 2022-12-01 21:59 mail

drwx------ 3 root root   4096 2022-12-01 22:01 samba

drwxr-x--- 2 root root   4096 2022-12-01 22:22 audit

drwxr-xr-x 2 root root   4096 2022-12-01 22:23 ConsoleKit

drwxr-xr-x 2 root root   4096 2022-12-01 23:41 prelink

drwx------ 2 root root   4096 2022-12-23 04:02 httpd

drwxr-xr-x 2 root root   4096 2022-12-23 04:02 setroubleshoot

-rw------- 1 root root   4321 2022-12-25 01:01 cron

-rw------- 1 root root   7144 2022-12-23 02:24 secure-20081223

-rw------- 1 root root  12096 2022-12-21 22:48 faillog

-rw------- 1 root root  16240 2022-12-19 04:02 maillog-20081219

-rw-r--r-- 1 root root  20944 2022-12-23 17:08 dmesg.old

-rw-r--r-- 1 root root  20944 2022-12-24 20:41 dmesg

-rw------- 1 root root  21424 2022-12-01 22:16 anaconda.xlog

-rw------- 1 root root  21521 2022-12-19 04:02 cron-20081219

-rw-r--r-- 1 root root  22149 2022-12-04 03:39 Xorg.0.log.old

-rw-r--r-- 1 root root  22149 2022-12-04 23:33 Xorg.0.log

-rw------- 1 root root  25749 2022-12-01 22:16 anaconda.syslog

-rw------- 1 root root  27728 2022-12-01 22:16 anaconda.log

-rw------- 1 root root  28346 2022-12-19 02:20 secure-20081219

-rw-r--r-- 1 root root  45798 2022-12-06 04:02 rpmpkgs-20081219

-rw-r--r-- 1 root root  45798 2022-12-19 04:04 rpmpkgs-20081223

-rw-r--r-- 1 root root  45798 2022-12-24 04:02 rpmpkgs

-rw------- 1 root root  76664 2022-12-24 23:24 messages

-rw-rw-r-- 1 root utmp 141696 2022-12-24 20:42 wtmp

-rw-r--r-- 1 root root 147168 2022-12-24 20:42 lastlog

-rw------- 1 root root 151722 2022-12-23 04:02 messages-20081223

-rw------- 1 root root 768661 2022-12-19 04:02 messages-20081219

[root@sulinux ~]# 

 

 

 

 

위의 결과에서 "ls -l"의 명령어를 입력으로 받아서 "sort -k 5"를 실행한 결과를 나타낸 것이다.

 

 

 

 이처럼 한 명령어의 결과를 다른 명령어의 입력으로 처리하고자 할 때에는 "|"를 사용한다.

 

 

 

 


이번 예에서 주목해야하는 부분은 특정 디렉토리의 용량을 기준으로 작은 용량부터 큰 용량의 파일 순서대로 정렬을 하였다는 것이다.

 

 

 

 여러분들의 디렉토리를 대상으로 실습해 보기바란다.

 

 

 

 

 

이번에는 앞의 예와는 반대로 내림차순(역순)정렬을 한 것이다.

 

 

 

  파일의 용량이 큰 것부터 차례대로 정렬된 것임을 알 수 있다.

 

 

 

 

 

[root@sulinux ~]# ls -l /var/log | sort -rk 5

-rw------- 1 root root 768661 2022-12-19 04:02 messages-20081219

-rw------- 1 root root 151722 2022-12-23 04:02 messages-20081223

-rw-r--r-- 1 root root 147168 2022-12-24 20:42 lastlog

-rw-rw-r-- 1 root utmp 141696 2022-12-24 20:42 wtmp

-rw------- 1 root root  76664 2022-12-24 23:24 messages

-rw-r--r-- 1 root root  45798 2022-12-24 04:02 rpmpkgs

-rw-r--r-- 1 root root  45798 2022-12-19 04:04 rpmpkgs-20081223

-rw-r--r-- 1 root root  45798 2022-12-06 04:02 rpmpkgs-20081219

-rw------- 1 root root  28346 2022-12-19 02:20 secure-20081219

-rw------- 1 root root  27728 2022-12-01 22:16 anaconda.log

-rw------- 1 root root  25749 2022-12-01 22:16 anaconda.syslog

-rw-r--r-- 1 root root  22149 2022-12-04 23:33 Xorg.0.log

-rw-r--r-- 1 root root  22149 2022-12-04 03:39 Xorg.0.log.old

-rw------- 1 root root  21521 2022-12-19 04:02 cron-20081219

-rw------- 1 root root  21424 2022-12-01 22:16 anaconda.xlog

-rw-r--r-- 1 root root  20944 2022-12-24 20:41 dmesg

-rw-r--r-- 1 root root  20944 2022-12-23 17:08 dmesg.old

-rw------- 1 root root  16240 2022-12-19 04:02 maillog-20081219

-rw------- 1 root root  12096 2022-12-21 22:48 faillog

-rw------- 1 root root   7144 2022-12-23 02:24 secure-20081223

-rw------- 1 root root   4321 2022-12-25 01:01 cron

drwxr-xr-x 2 root root   4096 2022-12-23 04:02 setroubleshoot

drwx------ 2 root root   4096 2022-12-23 04:02 httpd

drwxr-xr-x 2 root root   4096 2022-12-01 23:41 prelink

drwxr-xr-x 2 root root   4096 2022-12-01 22:23 ConsoleKit

drwxr-x--- 2 root root   4096 2022-12-01 22:22 audit

drwx------ 3 root root   4096 2022-12-01 22:01 samba

drwxr-xr-x 2 root root   4096 2022-12-01 21:59 mail

drwxr-xr-x 2 root root   4096 2022-10-02 23:32 vbox

drwx------ 2 root root   4096 2022-08-29 06:48 ppp

drwxr-xr-x 2 root root   4096 2022-08-02 13:22 dirmngr

-rw------- 1 root root   3758 2022-12-23 04:02 cron-20081223

-rw------- 1 root root   2533 2022-12-24 20:42 secure

-rw-r--r-- 1 root root   2285 2022-12-24 20:41 boot.log

-rw-r--r-- 1 root root   2285 2022-12-23 02:09 boot.log-20081223

-rw-r--r-- 2 root root   2285 2022-12-18 23:00 boot.log-20081219

-rw------- 1 root root   2280 2022-12-23 04:02 maillog-20081223

-rw------- 1 root utmp   1920 2022-12-03 23:40 btmp

-rw------- 1 root root   1574 2022-12-24 20:41 maillog

drwxr-xr-x 2 lp   sys    4096 2022-12-23 04:02 cups

drwxrwx--T 2 root gdm    4096 2022-12-04 20:26 gdm

drwxr-xr-x 2 ntp  ntp    4096 2022-10-08 20:23 ntpstats

-rw-r--r-- 1 root root     91 2022-12-22 23:03 spacefile

-rw------- 1 root root      0 2022-12-23 04:02 spooler

-rw------- 1 root root      0 2022-12-19 04:02 spooler-20081223

-rw-r--r-- 1 root root      0 2022-12-01 22:26 yum.log

-rw-r--r-- 1 root root      0 2022-12-01 22:23 wpa_supplicant.log

-rw------- 1 root root      0 2022-12-01 21:55 spooler-20081219

-rw------- 1 root root      0 2022-12-01 21:54 tallylog

합계 1672

[root@sulinux ~]#

 

 

 

 

이런 식의 명령이 주로 사용되는 것은 특정 디렉토리에서 큰 용량을 가진 파일을 찾고자 할 때에 사용하는 방법으로서 가장 큰 용량을 차례대로 나타내고자 할 때에 즐겨 사용한다.

 

 

 

  물론 큰 용량의 파일을 찾을 때에는 find명령을 주로 사용한다.

 

 

 

 

 

이번 예에서 주목해야 하는 것은 특정 디렉토리의 용량을 기준으로 큰 용량부터 작은 용량의 순서대로 정렬하였다는 것이다.

 

 

 

 실무에 매우 유용하다.

 

 

 

 특정 디렉토리내에서 어떤 파일들이 큰 용량을 차지하고 있는가를 확인하기 위하여 종종 사용된다.

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,076 명
  • 현재 강좌수 :  36,001 개
  • 현재 접속자 :  565 명