Observe que sua definição de destDIR
não define seu valor; ele apenas tenta executar o programa /data
com esse conjunto de variáveis. Como /data
não nomeia um programa, nada significativo acontece.
Vendo, então, como $destDIR
é indefinido, sua linha de comando mv
reduz para algo assim:
mv /Volumes/MCOOPER/data/run10.mat /
Parece razoável assumir, então, que seus arquivos foram movidos para o diretório raiz. Você checou lá?
Além disso, como conselho geral, há pelo menos três coisas que você pode criar o hábito de evitar acidentes como este no futuro:
- Sempre cite suas expansões de parâmetro, a menos que você explicite queira que elas sejam divididas:
mv "$sourceDIR/run$i.mat" "$destDIR"
- A menos que você saiba explicitamente que deseja substituir arquivos, execute
mv
com a opção-i
para evitar a substituição acidental. - Quando você sabe que deseja mover as coisas para um diretório, é útil colocar uma barra final no nome do diretório como uma proteção contra a renomeação acidental do (s) arquivo (s). Ou seja:
destDIR=/Volumes/MCOOPER2/data/
Além disso, você pode ou não, dependendo de suas circunstâncias, querer executar set -e
, para fazer com que o shell saia assim que qualquer comando falhar, em vez de prosseguir com comandos subseqüentes.