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

특정파일내에 존재하는 행수와 단어수 확인하는 wc실무5편 : 디렉토리개수만을 확인하는 간단한 방법

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

특정파일내에 존재하는 행수와 단어수 확인하는 wc실무5: 디렉토리개수만을 확인하는 간단한 방법

 

 

 

 

 

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

 

 

 

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

 

 

 

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

 

 

 

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

 

 

 

 

 

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

drwxr-xr-x  4 root root    4096 2022-12-01 21:55 ConsoleKit

drwxr-xr-x  4 root root    4096 2022-12-01 22:01 NetworkManager

drwxr-xr-x  2 root root    4096 2022-12-01 22:15 PackageKit

drwxr-xr-x  2 root root    4096 2022-12-01 21:54 PolicyKit

drwxr-xr-x  5 root root    4096 2022-12-01 21:58 X11

drwxr-xr-x  2 root root    4096 2022-09-24 23:52 a2ps

drwxr-xr-x  4 root root    4096 2022-12-01 21:52 acpi

drwxr-xr-x  2 root root    4096 2022-12-01 21:56 alsa

중략

drwxr-xr-x 2 root root 4096 2022-12-01 22:23 rules.d

drwxr-xr-x 2 root root 4096 2022-12-01 22:16 autostart

drwxr-xr-x 6 root root 4096 2022-12-01 22:12 menus

drwxr-xr-x 2 root root 4096 2022-11-11 03:44 applications-merged

drwxr-xr-x 2 root root 4096 2022-11-11 03:44 preferences-merged

drwxr-xr-x 2 root root 4096 2022-12-01 22:11 preferences-post-merged

drwxr-xr-x 2 root root 4096 2022-11-11 03:44 settings-merged

drwxr-xr-x 2 root root 4096 2022-12-01 22:04 pluginconf.d

[root@sulinux su]#

 

 

 

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

 

 

 

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

 

 

 

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

 

 

 

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

 

 

 

 

 

그런데 이행들을 어떻게 모두 세어보면 좋을까?  이것은 이번 절에서 우리가 배우고 있는 wc를 이용하는 것이다.

 

 

 

 다음과 같이 해보자.

 

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

235

[root@sulinux su]#

 

 

 

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

 

 

 

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

 

 

 

 

 

같은 결론이지만 다음과 같이 해도 괜찮다.

 

 

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

[root@sulinux su]#

[root@sulinux su]# ls -l etc_line

-rw-r--r-- 1 root root 13058 2022-12-26 22:53 etc_line

[root@sulinux su]#

[root@sulinux su]# wc -l etc_line

235 etc_line

[root@sulinux su]#

 

 

 

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

 

 

 

 이렇게 저장된 리스트를 시스템 운용보고서 작성시, 또는 쉘스크립트의 입력용파일등으로 활용할 수도 있다.

 

 

 

 어쨌든 이제 etc_line파일의 행의 수를 카운트해보면 앞의 예와 동일한 결과를 얻을 수 있다.

 

 

 

 

 

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

 

 

 

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

 

 

 

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

 

 

 

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

 

 

 

 항상 뭔가의 의문을 가져야만 새로운 방법을 알게 되는 것이다.

 

 

 

 

 

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

 

 

 

 

 

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

[root@sulinux su]# ls -l system_line

-rw-r--r-- 1 root root 973151 2022-12-26 22:59 system_line

[root@sulinux su]#

[root@sulinux su]# wc -l system_line

18249 system_line

[root@sulinux su]#

 

 

 

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

 

 

 

 

 

이상으로 wc에 대한 기본 설명과 예, 그리고 다양한 응용방법들에 대한 설명을 마친다.

 

 

 

 여러분들의 것으로 만들어서 이보다 더 유용한 사용법을 연구해보기 바란다.

 

관련자료

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

공지사항


뉴스광장


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