如何将一组按升序排列的数字文件移动到另一个目录?

如何将一组按升序排列的数字文件移动到另一个目录?

我的目录中有一些文件,名为00001.npy,,00002.npy...,,00150.npy等等。文件名按升序排列。

我想将所有名称介于00008.npy到之间的文件移动00180.npy到另一个目录。

我该怎么做?

答案1

在 bash 中你可以使用括号扩展

mv {00008..180}.npy /destination/

答案2

在 zsh 中,你可以使用以下形式的 shell glob<mn>匹配文件名的数字范围:

mv -nt path/to/destination/ -- <8-180>.npy

与括号扩展相比,这有几个优点,特别是它

  1. 如果括号扩展中的文件不存在,则不会出现{00008..180}错误

  2. 即使文件名没有用零填充到相同的长度也可以工作。

相关内容