ls 명령의 d 옵션은 정확히 어떻게 작동합니까? [복사]

ls 명령의 d 옵션은 정확히 어떻게 작동합니까? [복사]

다음과 같은 간단한 구조를 가지고 있습니다:

project
 main
  aaa
  aaa 
 test
  ddd
  ddd 
 pom.xml  <--- unique regular file

현재 디렉토리가 project실행되면 ls명령이 나타납니다 .

main  pom.xml  test

여기는 모든 것이 정상입니다. 이제 다음과 같은 man ls옵션이 d존재합니다.

   -d, --directory

          list directories themselves, not their contents

따라서 ls -d실행 시 다음 명령이 나타납니다.

.

왜? 솔직히 말해서 나는 일반 파일이 아닌 디렉토리만 기대하고 있었습니다. 예를 들어

main test

질문

  • d이 명령의 옵션은 정확히 어떻게 ls작동합니까?

추가 질문:

  • 무엇인가요그들의 내용이 아니라그게 정확히 무슨 뜻인가요? 각 디렉토리의 내부 내용에 관한 것인가요?

답변1

일반적으로 디렉토리를 입력하면 ls해당 디렉토리의 내용이 표시됩니다.

예를 들어 귀하의 예에서는 다음과 같습니다.

$ ls project
main  test
$ ls project/main
aaa  aab
$ ls project/test
dda  ddb

이 플래그를 사용하면 -d디렉터리 자체가 나열됩니다.

$ ls -d project
project

와일드카드 같은 것을 보기 전까지는 지루하게 들립니다.

$ ls project/*
project/main:
aaa  aab

project/test:
dda  ddb

모든 디렉터리가 일치하는지 확인하고 해당 디렉터리에 있는 파일 목록을 얻을 수 있습니다.

그러나 -d디렉토리 이름 자체만 얻을 수 있으며 디렉토리 내의 파일은 얻을 수 없습니다.

$ ls -d project/*
project/main  project/test

답변2

ls 명령의 d 옵션은 정확히 어떻게 작동합니까?

ls -d더 이상 디렉토리를 탐색하지 않는 것입니다. ls인수를 사용하지 않는 것은 동일하므로 출력 ls .만 표시됩니다 . .사용 방법의 예는 다음과 같습니다.

$ mkdir -p {foo,bar,baz}/dir
$ ls *
bar:
dir

baz:
dir

foo:
dir
$ ls -d *
bar  baz  foo

일부 디렉터리 메타데이터를 보려면(예 ls -ld: .

답변3

당신은매우다양한 문제. 그러나 혼란에 대한 짧은 대답은 다음과 같습니다.토론for  ls(지정되지 않은 경우)는 .. ls옵션 없이 실행 하면 다음과 같은 결과가 나타납니다.콘텐츠..  달리면 ls -d얻을 수 있다..

관련 정보