从脚本重命名文件?

从脚本重命名文件?

我正在创建一个脚本,它可以让我在更短的时间内完成一些事情。有没有一种方法可以自动重命名文件:

WDMyCloud_plexmediaserver_1.16.1.1291.bin(07082019)'

WDMyCloud_plexmediaserver_1.16.1.1291.bin

所以它会检测数字,但会删除之后的部分.bin

我正在使用Ubuntu。

答案1

使用mv

file='WDMyCloud_plexmediaserver_1.16.1.1291.bin(07082019)'
mv "$file" "${file%.bin*}.bin"

使用prenameor file-rename(在 Debian/Ubuntu 中也称为 just rename):

prename -n 's/\.bin.*$/.bin/' WDMyCloud_plexmediaserver_1.16.1.1291.bin\(07082019\)

删除 来-n实际执行重命名。

答案2

您可以创建脚本:

#!/bin/bash
for i
do
mv "$i" "${i%\(*}"
done

现在,您可以将文件名作为参数传递给该脚本,前提是该脚本与所有文件位于同一文件夹中。

例如

file 'WDMyCloud_plexmediaserver_1.16.1.1291.bin(07082019)' 'WDMyCloud_plexmediaserver_1.16.1.1292.bin(07082011)'

将在同一文件夹中重命名

WDMyCloud_plexmediaserver_1.16.1.1291.bin
WDMyCloud_plexmediaserver_1.16.1.1292.bin

相关内容