Existem vários problemas com o seu código:
- As variáveis de bash são usadas com
$VAR
, observe o$
na frente. Se você omitir o cifrão, ele será tratado como uma string normal. - A globalização de nome de arquivo do Bash precisa de um curinga (
*
,?
, etc.). Seu exemplo de.
corresponderia à pasta.
, que é a pasta atual. - As variáveis são definidas com
VAR=VALUE
. Não há espaço ao redor do sinal de igual.VALUE
deve ser citado se tiver espaços. - A concatenação de strings ocorre automaticamente. O sinal
+
insere um literal+
nessa posição. - As variáveis sempre devem ser usadas entre aspas duplas, a menos que você tenha um motivo para não fazê-lo.
Com esses pontos em mente, aqui está uma versão funcional do seu script.
cd /path/to/folder
for file in ./*
do
mv "$file" "NewPrefix$file"
done
Se condições
Se as condições forem usadas da seguinte forma:
if [[ "$file" == "New"* ]]
then
# Do something here
fi
Note que o asterisco está fora das aspas duplas.