作者:
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