예를 들어 ls -d 명령은 '.'만 반환하고 하위 디렉터리는 반환하지 않습니다.

예를 들어 ls -d 명령은 '.'만 반환하고 하위 디렉터리는 반환하지 않습니다.

나에겐 기준이 있다엘에스설치했어요 저도 가지고 있어요엘에스디설치되면 nerd-font의 ls를 즉시 대체할 수 있습니다. 오류가 별칭과 관련이 있을 수 있기 때문에 이것을 언급합니다.

즉각적인 테스트를 위해 alias ls=ls모든 사용자 정의 명령을 제거했습니다.

분명히 여러 하위 폴더가 있는 /etc 디렉토리 에 들어가면 ls(-d 플래그 없이 볼 수 있음) 다음과 같은 결과가 나타납니다.

>>>root@Unraid:/etc# ls -d /
/
>>>root@Unraid:/etc# ls -d
.
>>>root@Unraid:/etc# lsd -d

답변1

이 옵션을 제공하면 디렉터리의 내용이 나열되지 않고 디렉터리 이름 자체만 나열되기를 원한다는 -d의미입니다 . ls추가 정보를 제공하지 않는 경우논쟁에 대한 ls기본값은 현재 디렉터리를 나열하는 것입니다. 따라서 ls -d모든 변형에는 올바른 내용(현재 디렉터리 이름)이 표시됩니다..

답변2

Jeff Schaller의 답변로고가 -d작동하는 방식/이유를 설명합니다. 이 답변에서는 이것이 왜 또는 언제 유용한지에 대해 자세히 설명하고 싶습니다.

ls -d추가 매개변수 없이는 거의 유용하지 않습니다. 논쟁은 하나뿐이고, 그것도 별로 유용하지 않다고 생각합니다. ls -ld dirname권한, 소유권, 타임스탬프와 같은 유용한 정보를 얻을 수 있지만 stat dirname.

깜박임은 ls -d와일드카드입니다.

비교하다:

$ ls -l */*
one/a:
total 0
-rw-rw-r-- 1 gholl o16217 0 Mar 25 10:20 aa

one/b:
total 0
-rw-rw-r-- 1 gholl o16217 0 Mar 25 10:20 bb

two/c:
total 0
-rw-rw-r-- 1 gholl o16217 0 Mar 25 10:20 ab

two/d:
total 0
-rw-rw-r-- 1 gholl o16217 0 Mar 25 10:20 oe

그리고:

$ ls -ld */*
drwxrwxr-x 2 gholl o16217 4096 Mar 25 10:20 one/a
drwxrwxr-x 2 gholl o16217 4096 Mar 25 10:20 one/b
drwxrwxr-x 2 gholl o16217 4096 Mar 25 10:20 two/c
drwxrwxr-x 2 gholl o16217 4096 Mar 25 10:20 two/d

또는

$ ls -l */
one/:
total 8
drwxrwxr-x 2 gholl o16217 4096 Mar 25 10:20 a
drwxrwxr-x 2 gholl o16217 4096 Mar 25 10:20 b

two/:
total 8
drwxrwxr-x 2 gholl o16217 4096 Mar 25 10:20 c
drwxrwxr-x 2 gholl o16217 4096 Mar 25 10:20 d

또는

$ ls -ld */*[ac]
drwxrwxr-x 2 gholl o16217 4096 Mar 25 10:20 one/a
drwxrwxr-x 2 gholl o16217 4096 Mar 25 10:20 two/c

와일드카드를 사용할 때 보통 이렇게 합니다.아니요디렉토리를 입력하고 싶습니다. 대안은 나 에게 , 또는 ls -l */*디렉토리에 대한 많은 정보를 제공하지 않습니다 . 대안도 마찬가지 지만 다른 방식으로 나는 일반적으로 더 컴팩트한 출력을 선호합니다. 물론, 와일드카드를 사용하면 항상 하위 디렉터리의 모든 내용을 나열하면서 특정 이름만 일치시킬 수 있습니다. 결과는 flags 를 통해서만 얻을 수 있습니다 .one/aone/btwo/ctwo/dls -ld */*ls -l */ls -ld */*ls -l */ls -ld */*[ac]-d

  • -d에 와일드카드를 전달할 때 거의 항상 이 플래그를 사용합니다 ls.
  • -d단일 디렉터리를 전달할 때 태그를 거의 사용하지 않습니다.
  • -d매개변수를 전혀 전달하지 않을 때는 이 플래그를 사용하지 않습니다.

답변3

기본적으로 ls디렉터리를 제외한 각 이름에 대한 정보가 표시됩니다. 디렉터리가 제공되면 각 디렉터리에서 이름 목록을 검색한 다음 해당 디렉터리에 대한 정보를 표시합니다.

그러나 이 -d옵션은 이를 억제하여 ls디렉토리를 특별하게 처리하지 않고 단순히 주어진 모든 이름에 대한 정보를 표시합니다.

ls경로명 인자 없이 호출 되면 .주어진 대로 동작합니다. 이것이 없으면 -d현재 디렉토리의 내용이 표시되지만, 이를 사용하면 관찰한 대로 -d단순히 보고됩니다 ..

관련 정보