我只想在当前目录和子目录中将所有* .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