Linux

파일/디렉터리 개수 세기

비번변경 2021. 6. 9. 19:19

파일이나 디렉터리는 용량도 무척 중요하지만, 종종 개수도 따져봐야 할 때가 있다.

 

Linux에서는 아래처럼 명령어 3개 정도를 조합하면 간단하게 해당 경로의 파일이나 디렉터리 수를 구할 수 있다.

# 파일 개수 출력
ls -al | grep ^- | wc -l

# 디렉터리 개수 출력
ls -al | grep ^d | wc -l

 

아래에 각 요소의 의미에 대해서도 정리해둔다.

1. ls; list segments

ls

현재 디렉터리 내 파일이나 디렉터리에 대한 목록 표시

ls
# -a : all; 숨긴 파일/디렉토리를 포함한 목록 표시
# -l : long; 각 파일의 권한, 소유자, 그룹, 수정일 등 상세 정보 표시

ls -al

-l 옵션을 사용하면 한 줄에 하나의 파일/디렉터리에 대한 상세 정보를 볼 수 있다.

순서대로 권한, 포함하는 파일 수, 소유자, 그룹, 용량, 수정일, 이름을 의미한다.

권한의 맨 첫 문자는 디렉터리/파일(d/-) 여부를 표시하고, 두 번째 문자부터 3개씩 끊어서 소유자 권한, 그룹 권한, 다른 사용자 권한을 표시한다.

2. grep; global | regular experession | print

텍스트 검색 명령어

파일이나 표준 입력을 검색하여 주어진 정규 표현식과 맞는 줄을 찾아 출력한다.

grep <PATTERN> <FILE>

^는 정규 표현식에 사용하는 메타 문자로 문자열의 처음을 의미한다.

3. |; pipe

여러 명령어를 실행할 때, 이전 명령어의 결과를 다음 명령어의 입력값으로 지정한다.

 

위 세 요소를 조합하면 아래 사진과 같이 경로 내 디렉터리에 대한 정보만 확인할 수 있게 된다. 

pipe

4. wc; word count

파일의 행, 단어, 문자수를 세는 명령어

wc <OPTION> <FILE>
# -l : 행
# -w : 단어
# -c : 문자

 

즉, 경로 내 디렉토리/파일 개수를 세는 방법은 파일의 상세 정보를 출력한 뒤, 디렉터리나 파일 정보만을 추려서 그 행의 수를 세는 거라고 이해할 수 있다.