localizando o nome da pasta recursivamente e atribuindo-a a uma variável

0

Eu estou em um caminho de pasta. Existe uma pasta chamada dir . Há mais uma pasta dentro de dir , mas não sei o nome. Como encontrar e atribuí-lo a uma variável.

PS: Eu quero rodar isso em várias pastas, então preciso de um script que funcione como acima.

    
por user3269839 27.06.2018 / 08:43

1 resposta

0
set -- dir/*/

Fazer o acima definiria o $1 para o nome do caminho do primeiro diretório encontrado em dir . $2 seria o nome do caminho do segundo, etc. E $@ seria a lista de todos os nomes de caminho de diretório em dir .

Observe que o / final no final de dir/*/ é significativo. sem isso, você possivelmente pegaria nomes de arquivos regulares também.

Exemplo, dado o seguinte:

.
'-- dir
    |-- A
    |   '-- file2
    |-- B
    |   '-- file2
    |-- C
    |   '-- file2
    '-- file1
$ set -- dir/*/

$ echo "$1"
dir/A/

$ printf '%s\n' "$@"
dir/A/
dir/B/
dir/C/

$ myfolder="$1"
$ printf 'My folder is "%s"\n' "$myfolder"
My folder is "dir/A/"
    
por 27.06.2018 / 08:51