Um jeito bem interessante de interagir com os arquivos do diretório é
for i in *; do echo $i; done
o comando echo * tem o mesmo efeito do ls e é muito mais rápido, usando o comando time é possível verificar isso.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Um jeito bem interessante de interagir com os arquivos do diretório é
for i in *; do echo $i; done
o comando echo * tem o mesmo efeito do ls e é muito mais rápido, usando o comando time é possível verificar isso.
Olá, Lucas!
Sua observação é muito interessante, obrigado por compartilhar.
O comando echo * realmente lista os nomes dos arquivos no diretório atual, assim como o comando ls. Entretanto, é importante notar que eles não são exatamente iguais. O comando ls é mais poderoso e fornece mais informações sobre os arquivos e diretórios, como permissões, donos, data de modificação, entre outros.
O loop for que você mencionou é uma ótima maneira de interagir com múltiplos arquivos em um diretório. No contexto da atividade, poderíamos usá-lo para converter todos os arquivos .jpg para .png no diretório imagens-livros. Veja como poderia ser:
#!/bin/bash
CAMINHO_IMAGENS=~/Downloads/imagens-livros
for i in $CAMINHO_IMAGENS/*.jpg;
do
echo "Convertendo $i"
convert "$i" "${i%.jpg}.png"
done
Nesse script, o loop for passa por todos os arquivos .jpg no diretório imagens-livros. Para cada arquivo, ele usa o comando convert para criar uma versão .png. A expressão "${i%.jpg}.png" é usada para gerar o nome do arquivo de saída, substituindo a extensão .jpg por .png.
Bons estudos!