Сценарий Bash automatitation смена имени с помощью даты

Я плохо знаком с областью оболочки/удара. Я создал этот небольшой сценарий для изменения имени с помощью 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
0
задан 15 February 2020 в 01:58

1 ответ

Я пытался воспроизвести Вашу ошибку. Результат был:

  • 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
0
ответ дан 20 February 2020 в 22:53

Другие вопросы по тегам:

Похожие вопросы: