我有大量需要重命名的文件。这个名字目前是'sink-foobar'。我想删除'sink-'。必须有办法用bash做到这一点,但我没有运气。
答案 0 :(得分:6)
简单:
rename 's/sink-//' *files
它是Perl,有时名为prename
,它默认安装在Ubuntu和许多发行版上。
为确保您拥有正确的命令,请运行以下命令:
file $(readlink -f $(type -p rename)) | grep &>/dev/null -i perl &&
echo "Good version" ||
echo "ELF version, not the good one"
在Debian和派生(Ubuntu ...)上,您可以将其设置为默认值:
update-alternatives --set rename /usr/bin/vendor_perl/rename
答案 1 :(得分:6)
它始终是文字 sink-
吗?如果是这样,请使用参数扩展和条带前缀模式:
NAME='sink-foobar'
echo ${NAME#sink-}
所以,作为一个完整的脚本:
for f in sink-*; do
mv -- "$f" "${f#sink-}";
done