Я вижу две рискованные проблемы в вашем коде:
(1) Вы используете ls
для создания списка имен файлов (что приведет к странным результатам, если, например, имя файла содержит пробелы).
(2) Скажите, что ваш каталог изначально содержит файлы abc
и daisyabc1
.Первое переименование было бы mv abc daisyabc1
, следовательно, уничтожив исходное daisyabc1
.Второе переименование будет тогда mv daisyabc1 daisydaisyabc2
, и вы получите только один файл, из которого у вас изначально было два.Я предполагаю, что это является причиной вашей потери файлов.
Кстати, ваш счетчик (i
) не увеличивается, если сбой mv
.Я не знаю, если это ошибка или так задумано.