Bash 命令创建文件夹并将特定文件移入其中

Bash 命令创建文件夹并将特定文件移入其中

我正在尝试使用 bash 来实现这一点

我有一个文件目录,获取图片的示例如下:

January 2010 MA - C3 Edexcel.pdf
January 2010 MS - C3 Edexcel.pdf    
January 2010 QP - C3 Edexcel.pdf    
January 2011 MA - C3 Edexcel.pdf 
January 2011 MS - C3 Edexcel.pdf    
January 2011 QP - C3 Edexcel.pdf

我正在寻找一个命令,该命令将从每年获取三个文件并将其放入该年的文件夹中,例如,前三个文件应放入名为 2010 的文件夹中,第二组三个文件应放入文件夹名为 2011。

所以我想做的是

 mkdir 2010| mv *2010* 2010

对于文件中的每一年

需要明确的是,该文件夹比我展示的要大得多,这意味着逐年进行会花费太多时间

这可能吗?

答案1

这个脚本片段将满足您多年来的要求:

for i in $(seq 2010 2020); do 
    mkdir -p "$i" && 
    mv *"$i"*.pdf "$i"
done

答案2

一个简单的方法来理解它

mkdir 2010 && mv *2010*pdf !$

2011 年也是如此...

这是循环多年文件的解决方案

for i in $(seq 0 9) ; do mkdir 201${i} && mv *201${i}*pdf !$ ; done 

相关内容