본문 바로가기

리눅스

우분투 리눅스 디렉토리 파일 개수 세기

디렉토리 개수 세는 방법 


하위 폴더의 디렉토리 전체 개수 세기 ls -lR | grep ^d | wc -l
현재 폴더의 디렉토리 개수 세기  ls -l | grep ^d | wc -l
하위 폴더의 파일 전체 개수 세기 ls -lR | grep ^- | wc - l
현재 폴더의 파일 개수 세기 ls -l grep ^d |wc -l

 

리눅스를 이용하던 중 디렉토리와 파일의 개수를 세어야 할 필요가 생겼습니다. 여러 곳에서 찾아본 결과, 위와 같은 명령어의 조합으로 디렉토리의 개수를 세거나 파일의 개수를 셀 수 있었습니다. 이 글에서는 위 명령어에 대하여 설명하고자 합니다.

 

 

예시 


 

 

예를 들어서, 현재 디렉토리를 위 사진과 같은 구조로 생성하였습니다.  먼저, 하위 디렉토리는  a, b, aa, ab, ac, aaa, ab 총 7개입니다.  하위 폴더의 디렉토리 개수를 전부 센다면 7이라는 결과를 얻을 수 있을 것입니다.  ls -lR | grep ^d | wc -l 을 입력할 수 있습니다. 

 

먼저 ls는 파일과 디렉토리를 나열하는 명령어입니다. ls의 옵션 중 l 은 long listing foramt이라는 의미로, 파일 이름 외에도 수정 날짜한 날짜와 권한, owner 등의 정보를 얻을 수 있는 옵션입니다.  또한 R 옵션은, 하위 폴더에 대해서도 ls 명령어를 사용하여 목록을 재귀적으로 나열하라는 의미입니다. 

 

 

 

 

grep 은 어떠한 패턴을 찾는 명령어인데, ls -lR의 결과를 grep에게 입력으로 준 후에, ^d 명령어를 통해 d 시작하라는 단어를 전부 찾아낸 모습입니다. 가장 앞의 d는 디렉토리를, -는 파일을 의미합니다. wc는 파일에서 단어의 글자를 세는 명령어입니다. -l 옵션을 사용하여 라인의 수 만을 출력하였습니다. 결과는 다음과 같습니다.

 

 

 

첫 번째는 서브 디렉토리의 개수를, 두 번째는 파일의 개수를 나타내었습니다. 세 번째는 현재 폴더에서의 디렉토리 개수  a와 b인 2개를 출력한 결과입니다. 이를 응용하여, ^d 대신 .txt$ 를 통해서 txt 파일의 개수만을 찾거나, 다른 확장자를 가진 파일의 개수 또한 찾아볼 수 있을 것입니다.

 

 

 

참고


https://askubuntu.com/questions/34099/find-number-of-files-in-folder-and-sub-folders