查找名称中包含foo
的所有文件。
find / -name *foo*
例如结果是
/etc/lib/football
/var/log/some/somefooandother
/home/me/anotherfoo
/etc/all/files/includingfooinnamefoo
但我怎样才能取代所有foo
- > bar
这些文件的名称?
/etc/lib/bartball
/var/log/some/somebarandother
/home/me/anotherbar
/etc/all/files/includingbarinnamebar
答案 0 :(得分:0)
您可以尝试使用它:
for i in $(ls | grep "foo"); do
j="$(echo $i | sed s/foo/bar/)"
mv "$i" "$j"
done;
查找包含字符串foo的文件并存储到变量i
for i in $(ls | grep "foo");
重命名并存储到另一个变量j
j="$(echo $i | sed s/foo/bar/)"
使用mv重命名文件名
mv "$i" "$j"
我已经在我的系统上检查了这个并且它运行良好但是在继续之前备份数据总是安全的。你永远不知道拼写错误(我或你的)是什么原因。