基本上,因为我必须使用.bz2文件,我最终没有任何扩展,但这些文件应该是'.hdf4'文件。
所以,我可以逐一完成,但我想浏览目录中的所有文件。
所以对于一个文件:
mv A2003119.L3m_DAY_PAR_par_4km A2003119.L3m_DAY_PAR_par_4km.hdf4
现在尝试浏览所有文件;
mv *4km *4km.hdf4
哪个不起作用......
所以我尝试了别的东西:
for i in *4km;
do mv $i(*4km) $i(*4km.hdf4)
done
我不知道如何写得正确....请任何帮助非常欢迎! 非常感谢提前!
答案 0 :(得分:0)
一旦您的文件名在$i
中,它就完整了 - 您不需要做任何其他引用循环中4km
部分的文件。
for i in *4km; do
mv -- "$i" "$i.hdf4"
done
有关执行重命名的更全面文档,请参阅BashFAQ #30 - 递归操作,剥离旧扩展等。
答案 1 :(得分:0)
大多数发行版都会附带rename
命令(有时为prename
),这将为您带来繁重的工作:
rename -n -v 's/$/\.hdf4/' *4km
该命令实际上不会做任何事情,只会向您显示将要完成的内容。
一旦您满意,您可以再次运行它但没有-n
,实际上会重命名它们。
rename
命令使用Perl命令将源转换为目标文件名。在这种情况下,它是替换命令s
,它取代了实体的结尾"带有文字$
的标记.hdf4
,有效地将该扩展名附加到每个文件名。