フォルダを作成して特定のファイルをフォルダに移動する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

毎年3つのファイルをインポートし、その年のフォルダに入れるコマンドを探しています。たとえば、最初の3つのファイルは2010というフォルダに配置し、2番目の3つのファイルセットは2010年というフォルダに配置する必要があります。 2011というフォルダに入れます。

だから私がしたいことは

 mkdir 2010| mv *2010* 2010

ファイルの各年について

確かに言えば、フォルダは私が示したものよりはるかに大きいです。つまり、毎年フォルダを作成すると時間がかかりすぎます。

可能ですか?

ベストアンサー1

このスクリプトは、あなたが何年も要求してきたものを満たしてくれるでしょう。

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

おすすめ記事