Shell Script удаляет некоторые файлы - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть проект нейронной сети для классификации цветов.У меня есть набор данных цветов, и я хочу переименовать, например, все изображения ромашки в daisy1, daisy2 и так далее.Я написал сценарий оболочки для этого, но заметил, что каждый раз, когда я запускаю сценарий, некоторые изображения теряются, и я не понимаю, почему.Любая идея?Вот мой сценарий:

(( i = 1 )) 

for file in $(ls)
do
[ "$file" != "change-filenames.sh" ] && mv "$file" "daisy$i" && (( i++ ))
done

1 Ответ

0 голосов
/ 28 декабря 2018

Я вижу две рискованные проблемы в вашем коде:

(1) Вы используете ls для создания списка имен файлов (что приведет к странным результатам, если, например, имя файла содержит пробелы).

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

Кстати, ваш счетчик (i) не увеличивается, если сбой mv.Я не знаю, если это ошибка или так задумано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...