파일이 많은 경우엔, 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)
멜루 좀 보내주게나.. 하하 ^^;;;;;;;;; [email protected]
퍼갑니다