终端单命令行批量重命名文件:仅保留文件名最后6字符
解决文件名保留最后6个字符的重命名问题
正确的终端单命令行语句:
for f in *; do mv -- "$f" "${f: -6}"; done关键细节说明:
${f: -6}是Bash的参数扩展语法,专门用来提取变量f(当前遍历到的文件名)的最后6个字符。如果原文件名长度不足6位,会直接保留整个文件名,不会出现异常。- 加上
--是为了兼容以-开头的文件名,避免mv命令把这类文件名误识别为命令选项。 - 建议先把命令改成
echo mv -- "$f" "${f: -6}"运行,预览重命名的结果,确认无误后再执行实际的mv操作,防止误改文件。
你之前使用的
${f%?????}是从文件名末尾删除5个字符,和需求逻辑相反,所以无法实现保留最后6个字符的效果。
内容的提问来源于stack exchange,提问作者Jimmy
相关产品推荐
相关产品推荐

