将文件 000...001...002... 重命名为 001...002...003

将文件 000...001...002... 重命名为 001...002...003

我想从互联网档案中下载一个 50GB 的文件。下载速度高达 300kb/s,需要几天时间。所以我写了一个脚本来分块下载文件,并上传到 Google Drive,而无需缓存和填满我的 20GB 服务器。我现在有文件.000要下载.082

我想用 7z 打开它,但是我有点粗心,一开始就用000而不是,我宁愿不先合并它们,那么我该如何批量重命名这些文件以按 1 递增,以便我得到像, ,001这样的文件扩展名?001002003

我尝试用 7z 格式打开它们,但它只读取 .000 文件。

我可以访问 Windows 和 Linux,我尝试了批量文件重命名实用程序,对于 Windows,但它似乎不喜欢使用它来增加文件扩展名,Numbering (10)有没有办法在批量文件重命名实用程序中执行此操作,否则我如何使用 Linux 命令行重命名它们全部?

答案1

这条命令应该可以工作。已在 macOS High Sierra (10.13.6) 上测试。

它的工作原理是ls -r按相反的顺序列出文件,然后通过数学的魔力,将其添加+1到每个文件扩展名。

该脚本假定您拥有以如下模式命名的文件:

test.000
test.001
test.002
test.003

完成后将其重命名如下:

test.001
test.002
test.003
test.004

这是一个“试运行”版本,它将简单地回显命令以供您审查:

ls -r | while read f; do echo mv "${f}" "${f%.*}.$(printf '%03d' $(expr ${f##*.} + 1))"; done

只需将其删除echo即可使其运行并执行如下操作:

ls -r | while read f; do mv "${f}" "${f%.*}.$(printf '%03d' $(expr ${f##*.} + 1))"; done

相关内容