ls : .(점, period) 으로 시작하는 파일을 보여줘.. 우분투/리눅스

.qemm 같이, 점으로 시작하는 파일명(또는 디렉토리)을 가진 파일만 보고 싶을 때가 있다.
이렇게 하면 될 것 같은데..

$ ls -l .*


현재 디렉토리에서만 찾고 싶었는데, 이건 하위 디렉토리 모두를 뒤져서 결과를 보여준다.
왜 이렇게 되나?? 며칠 전에 이와 비슷한 상황이 있었던 것 같기도 한데..
검색에 걸린 글들은 대충 이 정도.답은 이렇게 간단하다.

$ ls -ld .*


h 는 파일 크기를 KB, MB, GB 단위로 보여주는 것이고, a 는 점으로 시작하는 것까지 포함하라는 건데, 여기선 굳이 안넣어도 된다.

헌데..
왜 ls -l .* 는 하위디렉토리까지 뒤지는 걸까??




위와 같이 의문을 가졌었으나...
ls -l .* 결과를 잘 살펴보니, 하위 디렉토리까지 뒤진 것이 아니고, 점으로 시작하는 디렉토리가 있을 경우, 그 디렉토리 내용을 표시해준 것이었다.
즉, .ssh 라는 디렉토리가 있을 경우엔 ls -l .* 가 결국 ls -l .ssh 한 것이 되므로, .ssh 디렉토리 내용을 표시해준 것이다.

따라서, -d (list directories themselves, not their contents) 를 통해서 현 디렉토리로만 한정을 해줘야 한다.




한가지 더.
위 검색 결과는 점으로 시작하는 디렉토리까지 포함하고 있다. 순수 파일만 보려면.. ls 로는 불가능한 것 같고, 이런 식으로 응용을 해줘야 한다.

$ ls -ld .* | grep ^-


덧글

댓글 입력 영역

Google Analyze


LastFm

MathJax