Я плохо знаком с областью оболочки/удара. Я создал этот небольшой сценарий для изменения имени с помощью date
команда. Идея состоит в том, чтобы получить что-то вроде этого
1.txt=>2020-02.txt
И это работает, но я получаю старое имя файла 2020-02-1.txt
добавленный к выводу.
Это - мой код до сих пор:
# FOR LOOP TO RENAME FILES
cd /home/atlas/Documents/bash/CARPETA-ORIGEN
#UBICAR LA CARPETA
FILES=$(ls *.txt)
NEW="$(date +"%Y-%m")"
for FILE in $FILES
do
echo "Renaming $FILE to new-$FILE"
mv $FILE $NEW-$FILE
done
Я пытался воспроизвести Вашу ошибку. Результат был:
1.txt
переименован к 2020-02-1.txt
, 2.txt
переименован к 2020-02-2.txt
,Если Вы хотите удалить старое имя файла/индекс из результата (который создает проблемы из-за столкновений имени - может только быть один файл, как произведено), можно изменить сценарий на
# FOR LOOP TO RENAME FILES
cd /home/atlas/Documents/bash/CARPETA-ORIGEN
#UBICAR LA CARPETA
FILES=$(ls *.txt)
NEW="$(date +"%Y-%m")"
for FILE in $FILES
do
echo "Renaming $FILE to new-$FILE"
mv $FILE $NEW.txt
done
Но я не рекомендовал бы это, потому что можно только переименовать тот .txt
файл на папку.
Однако вывод вышеупомянутого сценария
2020-02.txt