Bash 脚本使用日期自动更改名称

Bash 脚本使用日期自动更改名称

我是 shell/bash 领域的新手。我创建了这个小脚本来使用命令更改名称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

我尝试重现您的错误。结果是:

  • 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

相关内容