본문 바로가기

Linux and Unix/SHELL

파일개수 및 디렉토리 개수 구하기 (wc 명령 이용)

* 현재 디렉토리 하부에서 개수를 구하려면, 아래의 "{directory}" 를 삭제하거나, "./" 로 변경해서 실행

* 특정 디렉토리 하부에서 개수를 구하려면, 아래의 "{directory}"를 해당 경로로 변경해서 실행

○ 현재 디렉토리의 파일 개수
$ ls -l {directory} | grep ^- | wc -l

○ 현재 디렉토리와 하부 디렉토리를 포함한 파일 개수
$ ls -Rl {directory} | grep ^- | wc -l

○ 현재 디렉토리의 하부 디렉토리 개수
$ ls -l {directory} | grep ^d | wc -l

○ 응용
count=`ls -l {directory} | grep ^- | wc -l`
if test $count -gt 0; then
    echo "directory is not empty"
else
    echo "directory is empty"
fi

{irectory} 내에 있는 파일의 개수를 구하여 count에 저장하고,
그 개수가 0보다 크다면 "directory is not empty"라고 화면에 출력이 됩니다.
그 외에는 "directory is empty"라고 출력됩니다.


○ 명령어
1. wc
특정 파일내에서 존재하는 바이트(Bytes)수, 단어(Words)수, 행(Lines)수를 알려주는 명령어이다.

여러개의 파일의 바이트(Bytes)수, 단어(Words)수, 행(Lines)수를 카운트하면 전체 합과 함께 출력해 주는 기능도 있다.

- 사용법 -
Usage: wc [OPTION]... [FILE]...
  or:  wc [OPTION]... --files0-from=F
옵션 없이 사용할 경우에는 [행의 개수] [단어수] [문자수] [파일명] 순으로 출력

  -c, --bytes            바이트(byte)의 수를 출력
  -m, --chars            문자의 개수를 출력
  -l, --lines            행의 개수를 출력(공백라인 포함)
      --files0-from=F    MULL로 끝나는 파일에 대해 입력값을 받아서 출럭
                         F(파일)에서 입력을 읽음;
                         F위치에 - 를 입력하면, 표준입력에서 읽음
  -L, --max-line-length  가장 긴 행의 문자의 개수를 출력
  -w, --words            단어의 개수를 출력
      --help             이 도움말을 표시
      --version          버전 정보 출력