转-文件批量重命名
批量改名是大家经常会遇到的情况,那么大家都是怎么做的呢?
以下是我的批量改名心得,仅供大家参照。欢迎大家提出更多,更好的方法。
1、例1: 重命名,然后还原
将 /tmp/a 文件夹下的所有文件,加上后缀 _suffix
find /tmp/a -type f | xargs -t -i mv {} {}_suffix
#-i 选项告诉 xargs 用每项的名称替换 {}。-t 选项指示 xargs 先打印命令,然后再执行
例2: 还原
将 /tmp/a 文件夹下的所有文件,去掉共通后缀 _suffix
find /tmp/a -type f | xargs -t rename _suffix ""
---------------------------------------------------------
for file in `ls`;do mv "$file" `echo "$file" | sed s/10971/10972/`; done
然后发现xrags真的是一个非常有用的命令,它的主要功能是将上一个命令的输出,作为下一个命令的输入参数,和用for循环逐个运行是一样的效果,但是更简单,效率也会更高。
2、根据find结果,执行各类操作
例如:
删除文件夹下所有空文件:
find . -name "*" -type f -size 0c | xargs -n 1 rm -f
1、下载文本里面的所有链接:
cat url-list.txt | xargs wget –c
2、批量压缩:
find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
3、逐个编辑文件:
file * | xargs vi
3、最好用的重命名备份 和 还原
#重命名
grep -rl 'bootstrap_servers' *.xml |xargs -t -i mv {} {}.0926
xargs:
-t 表示先打印命令,然后再执行。
-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。
#改回来
grep -rl 'bootstrap_servers' *.xml.0926 |xargs -t rename .0926 ""
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2016-03-15 摘-BMC自动化解决方案产品概览