linux 批量重命名文件

mv 的方式

mv 可以 重命名文件 比如 mv dudu haha
但是他有缺点 ,就 是 批量 的时候比较难搞,比如你想把 当前 文件夹下的 所有文件(嵌套递归) 加上后缀 _bak
可以 这样 find -type f | xargs -n1 -i{} mv {} {}_bak
xargs -n1 -i{}类似于for循环,-n1表示逐个对象进行处理,-i{}表示用{}取代前面的对象,mv{} {}_bak相当于mv 1.txt 1.txt_bak

但是要是想 批量把当前文件夹下的 所有文件 带api 字段的 替换 成 menu ,我现在还不知道怎么做

rename 方式

百度了下 发现linux 有个命令叫 rename

linux的 rename命令有两个版本,一个是c语言版本的,一个是perl语言版本的

我的 archlinux 下 是 c语言版本 的 rename

替换的话就这样 find -type f | xargs rename Api Menu

但是我感觉 类似 那中 's/api/menu/' 这样的方式比较得劲……

archlinux 下安装 perl 版本 的 rename 工具

sudo pacman -S perl-rename

然后执行
find -type f | xargs perl-rename 's/Api/Menu/'

就能批量重命名文件啦

posted @ 2022-03-15 20:37  ifnk  阅读(627)  评论(0编辑  收藏  举报