linux重命名所有find查找到的文件/文件夹
一、说明
在某些时候我们想要将所有find命令查找到的文件或文件夹全都重命名,比如都加上.bak后辍
二、操作命令
find /dir -name "*pattern*" -exec mv {} {}.bak \;
find--文件查找命令
/dir--要进行文件查找的目录
-name--要查找的文件的文件名
*--通配符
pattern--要匹配的名称
-exec--对每个查找到的匹配项要执行的操作
mv--移动文件名令
{}--代表查找到的文件
.bak--对找到的文件加上bak后辍
\--分隔符,乍man find的解释也不是很理解
;--shell的语句分隔符
如果想直接删除文件可使用:find . -name "*wls-wsat*" -exec rm -rf {}
三、示例
近段时间爆出CVE-2017-10271,对于weblogic 10.3.4和10.3.5没有补丁,只能通过删除wls-wsat组件进行处理,以之为例。
可以看到所有匹配的文件和文件夹已成功加上.bak后辍(中间那两句No such file不懂什么原因)
参考: