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.
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!