![重命名目录中所有文件的通用方法](https://linux22.com/image/899057/%E9%87%8D%E5%91%BD%E5%90%8D%E7%9B%AE%E5%BD%95%E4%B8%AD%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%E7%9A%84%E9%80%9A%E7%94%A8%E6%96%B9%E6%B3%95.png)
我一直在用find -exec
或解析 ls 或使用 bash 通配符等为此制作简单的 bash 函数,每次我遇到大问题时,我不得不转向一种新方法,一次是参数列表太长,另一次是已经有名称的文件,例如2
当另一个文件被重命名为时被覆盖2
。
一次是 unicode 的问题,一次是文件名中的空格,一次是文件名中的*
或&
等等。所以我想来这里向大家请教最有效、最强大的通用方法,以便将目录中的所有文件重命名为具有连续名称无论!。无论文件的名称有多长,无论它们的原始名称是什么或扩展名是什么,也无论它们是否包含非 ASCII 字符。
所以我的要求是:
- 它可以处理长文件名。
- 它适用于Unicode字符。
- 如果文件中有空格或特殊字符,它就可以起作用。
- 它不会覆盖另一个文件上的任何文件。
- 尽可能快:D