我正在尝试将文件重命名为: 的 Name1_searchstats_metrics_20141230T133000036.log 类似于: Name2_searchstats_metrics_20141230T133000036.log
我正在尝试:rename -n 's/\Name1_/\Name2_/' *.log
但我收到错误:
bash: /usr/bin/rename: Argument list too long
有人可以帮忙吗?
答案 0 :(得分:5)
可能是最简单的解决方案,因为您使用bash是使用for
循环迭代文件列表:
$ for i in *; do rename -n 's/Name1_/Name2_/' $i; done
如果需要,您还可以在命令中使用任何通配符来过滤文件,例如*.log
。
还有其他更复杂的方法来实现这一点,特别是如果您需要对文件名进行特定的字符串操作,即使用awk
或find -exec
,但希望这可以帮助您解决问题以清楚的方式。
根据@glglgl
的建议编辑回答上述更全面详细的解释可以在超级用户身上找到: https://superuser.com/questions/31464/looping-through-ls-results-in-bash-shell-script
答案 1 :(得分:2)