Bash

用於創建文件夾並將特定文件移動到其中的 Bash 命令

  • January 27, 2018

我正在嘗試使用 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

對於文件中的每一年

需要明確的是,該文件夾比我展示的要大得多,這意味著逐年這樣做會花費太多時間

這可能嗎?

這個腳本片段將滿足您幾年的要求:

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

一個簡單的方法來理解它

mkdir 2010 && mv *2010*pdf !$

& 2011 年同樣的事情……

這裡是循環多年文件的解決方案

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

引用自:https://unix.stackexchange.com/questions/420085