我正在创建一个脚本,它可以让我在更短的时间内完成一些事情。有没有一种方法可以自动重命名文件:
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"
使用prename
or 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