用于以特定增量复制目录的脚本

用于以特定增量复制目录的脚本

我有一些名为 0.1、0.15、0.2、0.25、0.3、0.35 等的目录。现在我想以特定的增量(例如 0.1)将目录复制到一个单独的目录中。假设目录 0​​.1,0.2,0.3 应该转到文件夹一;目录 0.15,0.25,0.35 应该转到文件夹二等。我怎样才能轻松做到这一点?

答案1

对于您的具体问题,您可以使用文件名的长度来区分它们:

mv ??? first
mv ???? second

如果你想在更一般的情况下解决这个问题,你真的想使用像 Python 或 Ruby 这样的语言,其中循环文件和基本算术是合理的。

答案2

如果你的 shell 支持大括号扩展:

对于第一个增量:

mv /path/to/0.{0..99} /path/to/newdirectory/

第二个增量:

mv /path/to/0.{0..99}5 /path/to/newdir/

注意:将099from更改{0..99}为增量的第一个和最后一个数字。

答案3

这是我正在使用的目录结构

/
--0.1 - file
--0.2 - file
--0.15 - file
--0.25 - file
--first - dir
--second - dir

现在,首先我将把 0.1 和 0.2 文件移动到 'first' 目录中

for f in `ls|grep '^0\.[0-9]$'`;do;mv $f first;done;

接下来我将把 0.15 和 0.25 移动到 dir 'second'

for f in `ls|grep '^0\.[0-9][0-9]$'`;do;mv $f second;done

在代码中,grep '<regex>'列出所有与模式匹配的文件,然后 mv 将它们移动到各自的目录。

相关内容