Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Funcionamento do Globbing no mkdir diferente do ls

Executei o seguinte comando

mkdir ferias/201{1,2,3,4,5,6}/{jan,fev,mar}

e tive toda a árvore de pastas criada,

para ver o resultado executei

ls -R ferias

e vi todos os diretórios.

ae pensei em algo mais elaborado, para visualizar apenas as pastas dos anos de 2012 até 2015, então rodei

ls -R ferias/201[2-5]

e vi o resultado das pastas indicadas apenas

apaguei o diretório férias e tentei

mkdir ferias/201[1-6]/{jan,fev,mar}

pois pensei eu, se essa estrutura funcionou no ls, pq não funcionaria no mkdir

e tive o seguinte resultado

ferias/201[1-6]:
fev    jan    mar

ferias/201[1-6]/fev:

ferias/201[1-6]/jan:

ferias/201[1-6]/mar:

e não entendi o funcionamento diferente entre os dois comandos, alguém pode me explicar por favor?

muito obrigado pelo apoio desde de já.

1 resposta
solução!

Olá, Henrique. Tudo bem?

Para fazer a criação de vários diretórios sequenciais você deve usar {1..n} com o sinal de chaves. É uma sintaxe de range, diferente do sinal de colchetes [] que é usado para padrões.

Para criar os diretórios fotos/2021, fotos/2022, fotos/2023, fotos/2024 e fotos/2025, você pode usar:

mkdir fotos/202{1..5}

Para criar diretórios teste1, teste2, teste3, teste4 e teste5 dentro de todos os diretórios 202X recém-criados:

mkdir 202{1..5}/teste{1..5}

Para listar, você pode usar o sinal de colchetes [], que irá fazer o reconhecimento de padrões :

# dentro do diretório fotos:

ls 202[1-5]

A saída vai ser a listagem dos arquivos dentro de cada um dos diretórios que corresponderem ao padrão usado [1-5]:

2021:
teste1  teste2  teste3  teste4  teste5

2022:
teste1  teste2  teste3  teste4  teste5

2023:
teste1  teste2  teste3  teste4  teste5

2024:
teste1  teste2  teste3  teste4  teste5

2025:
teste1  teste2  teste3  teste4  teste5

Espero ter ajudado. Se tiver alguma dúvida, é só dizer.