`ls -d`에 `.`만 표시되는 이유는 무엇입니까?

`ls -d`에 `.`만 표시되는 이유는 무엇입니까?

난 그냥 디렉토리를 원해

$ ls -d 
.
#get . on macos

센토스에서도 마찬가지입니다

[root@iz2ze9wve43n2nyuvmsfx5z ~]# ls -d .
.

해결책을 찾았습니다.

[root@iz2ze9wve43n2nyuvmsfx5z /]# ls -d */
bin/   dev/  home/  lib64/       media/  opt/   root/  sbin/  sys/  usr/
boot/  etc/  lib/   lost+found/  mnt/    proc/  run/   srv/   tmp/  var/

하지만 매뉴얼에는 다음과 같이 명시되어 있습니다.

   -d, --directory
          list directories themselves, not their contents

-d그 이유는 무엇입니까?

답변1

ls -d실행 중인 위치에 포함된 디렉터리가 아닌 "이" 디렉터리에 적용됩니다 ls.

방금 실행 중인 경우에는 이상하게 보일 수 있지만 ls -d디렉터리를 소유한 사람이 누구인지 알고 싶다면 ls -do현재 디렉터리의 소유자만 보면 됩니다.

답변에 더 자세한 설명이 있습니다.ls -d가 파일을 나열하는 이유는 무엇이며 어디에 기록됩니까?

그리고 많은 훌륭한 통찰력ls * , ls ** 및 ls *** 의 결과정말로 더 배우고 싶다면ls

답변2

ls유틸리티는 명령줄에 제공된 경로 이름 인수를 나열합니다. 어떤 인수라도 해당하는 경우목차, 디렉토리의 전체 내용이 표시됩니다. 인수가 지정되지 않으면 ls현재 디렉토리가 사용된 것처럼 나열됩니다 ls ..

내용이 아닌 디렉토리를 나열하려면(디렉토리의 디렉토리 항목 보기) 을 -d선택 하면 됩니다 ls. 이를 통해 ls -d dir디렉토리 항목을 말하고 가져올 수 있지만 dir내용은 가져올 수 없습니다.

그 자체로 한 지점(현재 디렉터리)만 반환하는 이유는 본질적 으로 "내용을 표시하지 않고 현재 디렉터리에 대한 디렉터리 항목을 제공합니다"와 ls -d동일하기 때문입니다 .ls -d .


명령 ls -d */이 수행하는 작업은 숨겨진 이름이 없는 현재 디렉터리의 모든 디렉터리에 대한 디렉터리 항목을 표시하는 것입니다. 당신은 단지 얻을목차/패턴이 끝났기 때문이죠 . 를 사용하고 있으므로 -d이러한 디렉토리의 내용을 얻을 수 없습니다.

관련 정보