楼主:
REIDO (NEET)
2015-12-09 20:18:49我这边有很多资料夹,
a/
a/b/
b/c/d
类似这样,大家位置不同,内部有个档案叫xyz,我希望所有xyz都改名成fgh
问题是mv除了改档名也会改位置,如果我用find . -name xyz -exec mv {} fgh \;
会把所有档案弄到工作资料夹,还会互相盖台,我是希望他们待在原本地方,
只是换个名,请问要怎么办?
作者:
CP64 (( ̄▽ ̄#)﹏﹏)
2015-12-09 21:19:00find . -name xyz -exec mv {} `dirname {}`/fgh ?\;这样试试看?
作者:
bibo9901 (function(){})()
2015-12-09 21:41:00find . -name xyz -execdir mv {} fgh \;
find . -type f -name xyz -print0 | xargs -0 -I{} sh -c 'mv "{}" "$(dirname "{}")/fgh"'
find . -name oldf -type f -execdir mv {} newf \;
楼主:
REIDO (NEET)
2015-12-11 19:03:00CP64的方式会失败,还是搬到工作目录,也就是`dirname {}`失灵,这我也搞不懂。bibo9901成功。bluecadence和n3oanderson也都OK,感谢各位的帮忙。为什么两个人都有用dirname {},CP64的会失败啊?应该对啊
作者:
CaptainH (Cannon)
2015-12-15 21:12:00因为`...`会翻译后再传给findCP64其实是在执行 find . -name xyz -exec mv {} ./fgh