我一直在用find -exec
或解析 ls 或使用 bash 通配符等为此制作简单的 bash 函数,每次我遇到大问题时,我不得不转向一种新方法,一次是参数列表太长,另一次是已经有名称的文件,例如2
当另一个文件被重命名为时被覆盖2
。
一次是 unicode 的问题,一次是文件名中的空格,一次是文件名中的*
或&
等等。所以我想来这里向大家请教最有效、最强大的通用方法,以便将目录中的所有文件重命名为具有连续名称无论!。无论文件的名称有多长,无论它们的原始名称是什么或扩展名是什么,也无论它们是否包含非 ASCII 字符。
所以我的要求是:
- 它可以处理长文件名。
- 它适用于Unicode字符。
- 如果文件中有空格或特殊字符,它就可以起作用。
- 它不会覆盖另一个文件上的任何文件。
- 尽可能快:D