Bash Shell中的批重命名

Bash Shell中的批重命名,bash,shell,Bash,Shell,我有一个完整的文件列表,比如 1066_Hasoffers.apk.apk.txt 161_Genesys.apk.apk.txt 231_Attendance.apk.apk.txt 2956_BookingBug.apk.apk.txt 3394_sumall.apk.apk.txt 4306_Vocus.apk.apk.txt ..... 我想用一行字把它们重新命名为

我有一个完整的文件列表,比如

    1066_Hasoffers.apk.apk.txt        
    161_Genesys.apk.apk.txt        
    231_Attendance.apk.apk.txt  
    2956_BookingBug.apk.apk.txt  
    3394_sumall.apk.apk.txt   
    4306_Vocus.apk.apk.txt     
    .....
我想用一行字把它们重新命名为

       1066_Hasoffers.txt        
        161_Genesys.txt        
        231_Attendance.txt  
        2956_BookingBug.txt  
        3394_sumall.txt   
        4306_Vocus.txt     
        ....
如何完成此操作?

可以使用重命名命令:

rename 's/apk.apk.//' *.txt
这将从文件名中删除apk.apk

也可以在bash中使用循环:

for i in *.txt; do
 new=${i%apk.apk.txt}txt
 mv "${i}" "${new}"
done 

我不确定你在问什么。如果您想要一个命令或小脚本来重命名符合特定模式的目录中的所有文件,请这样说。否则,请把这个问题弄清楚你在找什么。如果您能描述到目前为止您尝试过的内容,这也会有所帮助。例如,如果您查看了find命令但不理解它,请这样说。非常感谢Blue Moon