我有一些名为 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/
注意:将0
和99
from更改{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 将它们移动到各自的目录。