`ls -d` 명령이 `.` 디렉토리만 인쇄하는 이유는 무엇입니까?

`ls -d` 명령이 `.` 디렉토리만 인쇄하는 이유는 무엇입니까?

나는 시도했고 man ls그 후에 얻었습니다.

-d, --directory

내용 대신 디렉터리 항목을 나열하고 기호 링크를 역참조하지 않습니다.

설명서에 나와 있듯이 -d모든 디렉토리를 나열한다는 뜻인데, 입력하면 다음과 같은 메시지 ls -d 가 나타납니다 .

drwxr-xr-x 35 *user group* 4.0K *date* 00:16 .

답변1

ls기본적으로 현재 디렉터리가 참조되기 때문입니다 . 결국 이것이 가장 일반적인 사용 사례입니다. 현재 디렉터리에 파일을 나열하는 것입니다.

"-d" 플래그는 단지 "디렉토리에 있는 파일을 나열하지 않고 디렉토리 자체만 나열함"을 의미합니다.

답변2

현재 디렉터리의 (숨겨지지 않은) 디렉터리만 나열하려면 find다음과 같이 사용해 보세요.

find . -maxdepth 1 -type d -not -name "\.*"

어디:

  • -type d디렉토리에만 집중하세요(내 생각에는 이것이 당신에게 필요하다고 생각합니다)
  • -name "\.*"숨겨진 파일 검색( \이스케이프 .문자용)
  • -not숨겨진 파일 검색을 취소하여 숨겨지지 않은 파일을 검색합니다.
  • -maxdepth 1더 많은 하위 디렉터리를 입력하지 마세요.

관련 정보