我是 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