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

특정 디렉토리내에 존재하는 전체 디렉토리개수 확인하는 간단한 방법

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

특정 디렉토리내에 존재하는 전체 디렉토리개수 확인하는 간단한 방법





 

시스템관리를 하다 보면 특정 디렉토리내부에 존재하는 파일의 개수를 정확하게 카운트해야 하는 경우가 있습니다.

 

 

 

  이런 경우에 초보 시스템관리자들은 디렉토리들 마다 찾아 다니면서 모두 세어보기도 힘들고, 뾰족한 방법이 없을까 한참을 고민해야 합니다.

 

 

 

  필자가 흔히 사용하는 방법 한가지를 소개합니다.

 

 

 

 정확한 파일의 개수와는 조금 오차는 있지만 거의 신뢰할 만한 수치이므로  참고하셔서 사용하시기 바랍니다.

 

 

 

 

 

먼저 다음 예를 보십시오.

 

[root@su250 su]# ls -Rl /etc | grep "^d"

drwxr-xr-x  4 root root    4096 2008-12-0121:55 ConsoleKit

drwxr-xr-x  4 root root    4096 2008-12-0122:01 NetworkManager

drwxr-xr-x  2 root root    4096 2008-12-0122:15 PackageKit

drwxr-xr-x  2 root root    4096 2008-12-0121:54 PolicyKit

drwxr-xr-x  5 root root    4096 2008-12-0121:58 X11

drwxr-xr-x  2 root root    4096 2008-09-2423:52 a2ps

drwxr-xr-x  4 root root    4096 2008-12-0121:52 acpi

drwxr-xr-x  2 root root    4096 2008-12-0121:56 alsa

중략

drwxr-xr-x 2 root root 4096 2008-12-0122:23 rules.d

drwxr-xr-x 2 root root 4096 2008-12-0122:16 autostart

drwxr-xr-x 6 root root 4096 2008-12-0122:12 menus

drwxr-xr-x 2 root root 4096 2008-11-1103:44 applications-merged

drwxr-xr-x 2 root root 4096 2008-11-1103:44 preferences-merged

drwxr-xr-x 2 root root 4096 2008-12-0122:11 preferences-post-merged

drwxr-xr-x 2 root root 4096 2008-11-1103:44 settings-merged

drwxr-xr-x 2 root root 4096 2008-12-0122:04 pluginconf.d

[root@su250 su]#

 

위의 예는 ls명령어에 Rl이라는 옵션을 사용하여 /etc 디렉토리에서 서브디렉토리들을 포함하여 모든 디렉토리내의 파일들의 리스트를 확인하였습니다.

 

 

 

 그런 다음 각행들의 첫번째 문자가 d로 시작하는 행들만 화면으로 출력되도록 한 것입니다.

 

 

 

 확인해 보시면 아시겠지만, 출력되는 모든 행들은 모두 디렉토리들입니다.

 

 

 

 따라서 이 결과 행의 개수가 몇행인가를 세어 본다면 /etc디렉토리내에 디렉토리가 몇 개나 있는가를 확인하는 셈이 됩니다.

 

 

 

 

 

그런데 이행들을 어떻게 모두 세어 보면 좋을까요?

 

이것은 이번 장에서 우리가 배우고 있는 wc를 이용하는 것입니다.

 

 

 

 이제 감 잡으셨죠. 다음과 같이 해 보십시오.

 

[root@su250 su]# ls -Rl /etc | grep "^d" | wc -l

235

[root@su250 su]#

 

, 위의 예는 앞의 결과로 출력된 행을 개수가 몇 개인가를 확인한 것입니다.

 

 

 

 결론적으로 /etc디렉토리내에 존재하는 디렉토리의 개수가 235개라는 것을 알 수 있습니다.

 

 

 

 

 

같은 결론이지만 다음과 같이 하셔도 괜찮습니다.

 

 

 

 

 

[root@su250 su]# ls -Rl /etc | grep "^d" > etc_line

[root@su250 su]#

[root@su250 su]# ls -l etc_line

-rw-r--r-- 1 root root 13058 2008-12-2622:53 etc_line

[root@su250 su]#

[root@su250 su]# wc -l etc_line

235 etc_line

[root@su250 su]#

 

위의 예는 /etc디렉토리내에 존재하는 모든 디렉토리들의 리스트를 etc_line이라는 새로운 파일에 저장하도록 한 것입니다.

 

 

 

 이렇게 저장된 리스트를 시스템 운용보고서 작성시, 또는 쉘스크립트의 입력용파일등으로 활용할 수도 있겠지요. 어쨌든 이제 etc_line파일의 행의 수를 카운트해보면 앞의 예와 동일한 결과를 얻을 수 있습니다.

 

 

 

 

 

, 그럼 마지막 예로서 리눅스 시스템 전체에는 디렉토리의 개수가 몇 개나 있는가를 확인해 보겠습니다.

 

 

 

 필자는 가끔씩 이런 엉뚱하다고 할 수 있는 생각을 해보곤 합니다.

 

 

 

 시스템 전체에 명령어가 몇 개나 있을까? 혹은 시스템전체에 디렉토리 또는 파일의 전체 개수가 몇 개나 될까? 등이 궁금했었던 적이 있었습니다.

 

 

 

 그래서 다음과 같은 방법으로 그런 궁금증들을 풀어보았습니다.

 

 

 

 항상 뭔가의 의문을 가져야만 새로운 방법을 알게 되는 것이니까요?

 

! 그럼, 시스템 전체에 디렉토리의 개수를 다음과 같이 확인해 보았습니다.

 

 

 

 

 

[root@su250 su]# ls -Rl / | grep "^d" > system_line

[root@su250 su]# ls -l system_line

-rw-r--r-- 1 root root 973151 2008-12-2622:59 system_line

[root@su250 su]#

[root@su250 su]# wc -l system_line

18249 system_line

[root@su250 su]#

 

위의 결과에서 보듯이 현재 필자가 사용하고 있는 리눅스시스템에 존재하는 디렉토리의 개수는 18,249개입니다.

 

 

 

 

 

이보다 훨씬 많은 응용을 해 보시기 바랍니다.

 

 

 

 새로운 의문이 새로운 방법을 생산합니다.

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,038 명
  • 현재 강좌수 :  35,818 개
  • 현재 접속자 :  109 명