모든 디렉터리와 하위 디렉터리를 반복적으로 인쇄합니다.

모든 디렉터리와 하위 디렉터리를 반복적으로 인쇄합니다.

재귀 함수를 사용하여 모든 디렉터리와 하위 디렉터리를 인쇄하려고 하는데 첫 번째 디렉터리만 가져옵니다. 도움이 필요하세요?

counter(){
    list=`ls $1`
    if [ -z "$(ls $1)" ]
    then 
        exit 0
    fi
    echo $list
    for file in $list
    do 
      if [ -d $file ]
      then 
            echo $file
            counter ./$file
      fi
    done
}

counter $1

답변1

다음과 비슷한 것을 사용할 수 있습니다.

#!/bin/bash

counter(){
    for file in "$1"/* 
    do 
    if [ -d "$file" ]
    then 
            echo "$file"
            counter "$file"
    fi
    done
}

counter "$1"

./script.sh .현재 디렉토리 아래의 디렉토리를 반복적으로 인쇄하거나 탐색할 다른 디렉토리에 대한 경로를 지정하려면 이를 실행하십시오 .

관련 정보