我希望重命名206,372个文件,当前名称为Minecraft (03)_206372.tga
,这就是文件的标注方式。
我知道自己在做什么,但我想确定自己在做什么。 到目前为止我有一个命令
ls Minecraft\ \(03)\)_206372.tga | awk -F'_' '{print $2}'
该命令将打印206372.tga
。
这样做我想要的,但我想同时用命令更改一个超过200,000个文件的名称,有人可以帮助完成命令。
答案 0 :(得分:1)
尝试类似:
for file in Minecraft*.tga ; do
mv "$file" "${file##*_}"
done
答案 1 :(得分:0)
只需使用rename
命令,该命令使用perl regex
rename 's/Minecraft \(03\)_//' *.tga
这将在所有以“.tga”结尾的文件中用空字符串替换“Minecraft(03)_”。
答案 2 :(得分:0)
这是一种蛮力,但从文件中删除前缀是可以理解的方法:
#!/bin/sh
dir=$0
for file in `find $dir -name blah_\*.tga`; do
newfile=`echo $file | sed 's/blah_//'`
my $file $newfile
done
根据您的文件系统,您可能会在目录中包含如此多的文件并进行如此多的更改,从而对性能产生重大影响。
关于使用“find”的注意事项: