옵션을 사용하여 다른 디렉토리 내의 모든 디렉토리를 어떻게 나열할 수 있습니까?

옵션을 사용하여 다른 디렉토리 내의 모든 디렉토리를 어떻게 나열할 수 있습니까?

/etc/예를 들어 특정 디렉터리에 없으면 해당 디렉터리에 있는 디렉터리만 나열하고 싶습니다(숨겨진 디렉터리 포함).

숨겨진 디렉터리를 포함한 모든 디렉터리를 나열하려면 다음 명령을 사용합니다.

ls -d */ .*/

이 명령을 사용하여 목록을 작성하고 싶습니다 /etc.

ls /etc

이렇게 할 수 있지만 첫 번째 항목과 결합하여 디렉토리만 나열하고 싶습니다.

ls -d */ .*/ /etc

또는

ls /etc -d */ .*/

작동 안함. 왜?

답변1

*/.*/은(는) 직접 전달된 인수가 아니기 때문에 작동하지 않습니다 ls. 대신 셸에 의해 확장된 전역 변수이므로 전달되는 현재 디렉터리에서 일치하는 파일 이름 목록을 제공합니다.ls

다른 디렉토리에 해당하는 것은 /etc(예를 들어)

ls -d /etc/*/ /etc/.*/

쉘이 중괄호 확장을 지원하는 경우 다음과 같이 더 간결하게 작성할 수 있습니다.

ls -d /etc/{,.}*/

답변2

find /etc/ -maxdepth 1 -type d

다른 디렉토리 내에 있는 숨겨진 디렉토리를 포함하여 디렉토리만 나열하려면 위 명령을 사용하십시오.

관련 정보