我只想在當前目錄和子目錄中將所有* .a文件重命名爲* .a.b,如何在shell腳本中執行它?bash shell:如何重命名文件
回答
find . -type f -name '*.a' -print0 | xargs -0 -IZZ mv ZZ ZZ.b
這應該處理與空間和/或換行符的文件名。它也不會重命名目錄(另一種解決方案在做查找)。如果你希望它是不區分大小寫,使用 「-iname」 代替 「-name」
要重命名<files>
那個,rename 's/\.a$/.a.b/' <files>
。這樣做遞歸地只需要一些循環。
(或使用*
,*/*
,*/*/*
,*/*/*/*
等爲文件)
嘗試下面的腳本:
for file in `find . -name '*.a'`; do mv $file $file.b; done
,但不會處理在正確的文件名中的空格和換行 - 你可能想使用-print0和xargs的嘗試 - 代替0。 – George 2011-03-22 02:18:39
或者:找。 -name'* .a'|同時讀-r x;做mv「$ x」「$ x.b」;完成 – 2011-03-22 09:04:18
紅寶石(1.9+)
$ ruby -e 'Dir["**/*.a"].each{|x|File.file?x && File.rename(x,"#{x}.b")}'
在shell腳本(至少巴什4)
shopt -s globstar
shopt -s nullglob
for file in **/*.a
do
echo mv "${file}" "${file}.b"
done
對不起,我的瀏覽器似乎在顯示不同的答案。我現在看到的版本肯定是遞歸的。這似乎也是一個很好的解決方案! – 2011-03-22 02:26:07
- 1. Bash Regex重命名文件
- 2. shell腳本重命名文件
- 3. 用shell腳本重命名文件
- 4. 的Bash shell:如何解析文件名
- 5. 通過批量重命名多個文件,VBScript或bash shell中
- 6. 如何用bash重命名文檔?
- 7. 使用shell腳本重命名文件
- 8. 在bourne shell中重命名文件
- 9. Shell/Bash快捷方式批量重命名文件夾中的文件
- 10. bash腳本優化文件重命名
- 11. 多個文件在bash中重命名。
- 12. 使用Bash批量重命名文件
- 13. 動態重命名bash中的文件?
- 14. bash腳本來重命名文件夾
- 15. 批量重命名文件(bash)
- 16. 在Bash中批量重命名文件
- 17. Bash批處理文件重命名
- 18. Bash:複製+重命名文件夾
- 19. 重命名一批文件在bash
- 20. 在bash中重命名多個文件
- 21. 使用bash腳本重命名文件
- 22. 重命名BASH中的幾個文件
- 23. 將文件夾名重命名爲帶有bash的文件名
- 24. 如何重命名文件?
- 25. 如何重命名文件?
- 26. 使用查找shell重命名文件夾中的文件
- 27. 如何重命名git根文件夾?
- 28. 如何在shell腳本中複製和重命名文件
- 29. 如何使用shell腳本重命名多個文件?
- 30. 如何使用shell腳本重命名所有文件?
如果bash的4,然後'禁用了javascript -s globstar'和使用''**對不起 – 2011-03-22 13:43:06