Зверніть увагу, що ваше визначення destDIRзовсім не встановлює його значення; вона просто намагається запустити програму /dataз цим набором змінних. Оскільки програма /dataне називає, нічого змістовного не відбувається.
Бачачи, то, як $destDIRне визначено, ваш mvкомандний рядок зводиться до чогось такого:
mv /Volumes/MCOOPER/data/run10.mat /
Тоді здається розумним припустити, що ваші файли переміщені в кореневу директорію. Ви там перевіряли?
Також, як загальна порада, є щонайменше три речі, які ви, можливо, захочете звикнути уникати подібних аварій у майбутньому:
- Завжди цитуйте розширення параметрів, якщо ви просто не хочете, щоб вони були розділеними на слова:
mv "$sourceDIR/run$i.mat" "$destDIR"
- Якщо ви чітко не знаєте, що хочете замінити файли, запустіть
mvза допомогою -iперемикача, щоб уникнути випадкової заміни.
- Коли ви знаєте, що хочете перемістити речі в каталог, корисно поставити остаточну косу рису на ім'я цього каталогу як захист від випадкового перейменування файлів. Це:
destDIR=/Volumes/MCOOPER2/data/
Крім того, ви можете або не можете, залежно від ваших обставин, хотіти запустити set -e, щоб зробити оболонку вихід, як тільки будь-яка команда не виконана, замість того, щоб продовжувати наступні команди.
destDIRце не визначено, малоймовірно, що цей сценарій взагалі нічого б не зробив. (Якщо це не відрізняється від того, що ви нам показуєте.)