我有大量需要重命名的文件。该名称当前为“sink-foobar”。我想删除“sink-”。必须有办法用 bash 做到这一点,但我没有运气。
问问题
1478 次
2 回答
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
于 2012-12-01T17:01:15.437 回答
6
它总是文字 sink-
吗?如果是这样,请使用参数扩展和去除前缀模式:
NAME='sink-foobar'
echo ${NAME#sink-}
所以,作为一个完整的脚本:
for f in sink-*; do
mv -- "$f" "${f#sink-}";
done
于 2012-12-01T17:02:27.090 回答