Imprime recursivamente todos os diretórios e subdiretórios

4

Estou tentando imprimir todos os diretórios e sub-diretórios com uma função recursiva, mas só obtenho o primeiro diretório. Qualquer ajuda?

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
    
por Nasi Jofce 19.06.2016 / 00:44

1 resposta

6

Você pode usar algo semelhante a isto:

#!/bin/bash

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

counter "$1"

Execute-o como ./script.sh . para recursivamente imprimir diretórios no diretório atual ou dê o caminho para algum outro diretório a ser percorrido.

    
por 19.06.2016 / 01:22