!["ls" 명령에 디렉토리만 볼 수 있는 옵션이 있습니까?](https://linux55.com/image/470/%22ls%22%20%EB%AA%85%EB%A0%B9%EC%97%90%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%A7%8C%20%EB%B3%BC%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%EC%98%B5%EC%85%98%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
때로는 파일 대신 디렉터리만 확인해야 할 때도 있습니다. ls 명령에 옵션이 있습니까? 아니면 그렇게 해도 소용이 없나요?
편집하다:저는 Mac OS X를 사용하고 있는데 ls -d
디렉토리가 있는데도 디렉토리가 제공됩니다..
답변1
이미 선택된 답변이 있다는 것을 알고 있지만 다음을 사용하여 요청된 동작을 얻을 수 있습니다 ls
.
ls -ld -- */
("--"는 인수의 끝을 표시하여 하이픈으로 시작하는 폴더 이름이 추가 명령 옵션으로 해석되는 것을 방지합니다.)
이것은 실행되는 현재 작업 디렉토리에서 숨겨지지 않은 모든 디렉토리를 나열합니다(쉘의 glob을 확장하도록 구성하지 않은 경우)(디렉토리에 대한 심볼릭 링크도 포함되어 있습니다). 다른 폴더의 모든 하위 디렉터리를 얻으려면 다음을 시도해 보세요.
ls -ld /path/to/directory/*/
-l은 선택 사항입니다.
답변2
아니요, 하지만 간단한 find
명령으로 이를 수행할 수 있습니다(여기에서는 -{min,max}depth
요즘 대부분의 구현에서도 볼 수 있는 GNU 확장을 사용합니다).
find . -mindepth 1 -maxdepth 1 -type d
또는 이에 상응하는 POSIX(표준):
find . ! -name . -prune -type d
FreeBSD 및 일부 파생물(포함)에 대해애플 시스템) 다음을 수행할 수도 있습니다.
find . -depth 1 -prune -type d
여기에는 숨겨진 디렉터리( 특수 디렉터리 .
가 아님 ..
)도 포함되며 파일 목록을 정렬하지 않습니다. 또한 GNU를 통해 구현 된 ./
각 파일에 접두사를 추가합니다 . .find
-printf '%P\n'
또는 grep
(파일 이름에 개행 문자가 포함되어 있지 않다고 가정):
ls -p | grep /
( 숨겨진 옵션을 포함하는 -A
옵션이 추가되었습니다 ls
).
필요한 경우 그 중 하나에 별칭을 추가할 수 있습니다.
답변3
숨겨진 디렉터리도 확인해야 했기 때문에 필요에 맞게 위 제안을 수정했습니다.
ls -d -- */ .*/
(쉘에 따라 .
및 가 포함될 수도 있음 ..
)
답변4
(macOS에서 기본적으로 발견 되며 zsh
, 이전에도 있었고 /bin/sh
최신 버전에서는 기본 로그인 셸이었습니다) glob 한정자를 사용하여 유형에 따라 파일을 선택할 수 있습니다.
숨겨지지 않은 디렉터리를 나열합니다.
ls -ld -- *(/)
모든 디렉터리를 나열합니다.
ls -ld -- *(D/)
( 항상 제외
.
되며..
필요한 경우 별도로 추가할 수 있습니다)또한 디렉터리에 대한 기호 링크를 포함합니다.
ls -ld -- *(D-/)
(
-
기호 링크 확인 후 추가 한정자가 적용됩니다.)
여기서는 -l
긴 목록을 가져오는 데 사용합니다. 필요하지 않은 일치하는 파일 목록을 인쇄하려면 ( aw on olumn , 내장) 으로 ls
바꿀 수 있습니다 . 일치하는 파일이 없을 때 오류를 보고하는 대신 아무것도 인쇄되지 않도록 glob 한정자를 추가할 수도 있습니다 .ls -ld
print -rC1
print
r
1
C
print
N
print -rC1 -- *(ND/)