将一系列编号的文件移动到新目录

ric*_*ich 1 command-line

在我的父目录中,我有 78,160 个文件。
文件名是:sb_604_dpm_0089000.dpx、sb_604_0089001.dpx 等。

我想将文件移动到 4 个子目录 subdir1、subdir2、subdir3、subdir4。每个目录中必须按顺序正好有 20,000 个文件。

是否可以将一定范围的文件从父目录移动到子目录,即 sb_604_dpm_0089000.dpx 到 sb_604_dpm_0108,999.dpx 文件到 subdir1 sb_604_dpm_0109000.dpx 到 subdir1 sb_604_dpm_0109000.dpx 到 subdir_60912dpx 到 subdir1 sb_609000.dpx 到子目录 sb_604_dpm_0089000.dpx

最终文件夹将仅包含前 60,000 个文件之后的剩余文件。

所有这些都应该使用批处理文件来完成,理想情况下能够在移动进行之前指定/检查范围。这可能吗?

在 DOS 中,我可能可以为自己编写批处理文件来解决这个问题,但是对于 Linux,我有点迷茫......我不是程序员,我只是一个寻找更快/更好方法的 Linux 用户这样做而不是 GUI,所以任何帮助表示赞赏。请尽可能简单!

提前致谢!

Per*_*uck 5

如果它是一次性任务,您可以像这样使用 shell 扩展:

mkdir subdir1 subdir2 subdir3 subdir4
mv sb_604_dpm_{0089000..0108999}.dpx subdir1
mv sb_604_dpm_{0109000..0128999}.dpx subdir2
mv sb_604_dpm_{0129000..0148999}.dpx subdir3
mv sb_604_dpm_*.dpx                  subdir4
Run Code Online (Sandbox Code Playgroud)

{1..5}扩展为1 2 3 4 5,所以上面的命令扩展到第一个/第二个/第三个 20,000 个文件,最后一行处理其余的。