유닉스 명령어: 디렉토리내 파일 갯수 알아보기

파일이 많은 경우엔, ls 명령어를 통해 디렉토리 내부를 출력한뒤 일일히 세기에는 조금 무리가 있다고 봅니다. 그럴때는 | 파이프를 통해,

ls | wc -l

해주시면 현재 디렉토리내에 파일과 서브 디렉토리가 몇개나 되는지 보실 수 있어요. 디렉토리 갯수만 찾고 싶으실 때는 아래처럼 조금만 바꿔주시면 됩니다.

ls -d */ | wc -l

주- 서브 디렉토리를 검색하지 않고 “/” 로 끝나는 것 (디렉토리) 만을 표시해서 갯수를 세라.

물론 제시된 방법들은 간단하긴 하지만 재미가 없습니다. 특히 파일갯수만 세는 것도 힘들구요. 그래서, 요즘 find, |, grep등의 조합으로 재미를 보고 있는 지라 조금 복잡해보일지라도 이것 저것 가져다 붙여보기로 했습니다. 😀

우선,

find . | wc -l

명령어는 현재 디렉토리를 시작으로 모든 파일과 서브 디렉토리를 검색합니다.

여기서 살짝 추가해 줄 것이,

find . -type d | wc -l

하지만 이렇게 하면 서브 디렉토리까지 모두 검색이 되니,

find . -type d -maxdepth 1 | wc -l

로 바꿔줍니다. 이렇게 하면 현재 디렉토리내에 존재하는 서브 디렉토리만 보여주게 되죠.

여기에다가 조금만 더 바꿔주면,

find . -type d -maxdepth 1 -path ‘./*’ | wc -l

현재 디렉토리를 의미하는 . 까지 없애줄 수 있습니다. 🙂 또는 색다르게,

find . -type d -maxdepth 1 -name “*” | wc -l

도 동일한 결과를 보여줍니다.

파일만 검색하고 싶을 때는 d 대신에 f 를 사용하시면 되요. -type f 로.

유닉스 명령어. 이것 저것 배우다 보면 재밌게 응용할 수 있는 부분이 굉장히 많다고 생각됩니다. 🙂

주- [man find]       -type c
              File is of type c:
              b      block (buffered) special
              c      character (unbuffered) special
              d      directory
              p      named pipe (FIFO)
              f      regular file
              l      symbolic link
              s      socket
              D      door (Solaris)

2 Replies to “유닉스 명령어: 디렉토리내 파일 갯수 알아보기”

Comments are closed.