← 返回目录

使用shell将一个目录的所有文件移动以年月为名的文件夹中

发布时间: 2020-05-04 23:02:58
浏览量: 382
标签: linux
首先创建一个临时的目录:mkdir tempformv使用stat,cut和mkdir创建以月份为名的文件夹$stat -c "%y" * | cut -b1-7 | sort | uniq | while read line ;do mkdir tempformv/$line; done $ls tempformv/2010-05 2020-05生成要执行的命令...

首先创建一个临时的目录:

mkdir tempformv

使用stat,cut和mkdir创建以月份为名的文件夹

$stat -c "%y" * | cut -b1-7 | sort | uniq | while read line ;do mkdir tempformv/$line; done 

$ls tempformv/
2010-05  2020-05

生成要执行的命令

$ stat -c 'TT="%y";FN="%n"'  * | grep -v tempformv  | while read line; do eval "$line"; echo  "mv \"${FN}\" \"tempformv/${TT:0:7}/\""; done > tempformv/mvops.sh

检查一下生成的命令

cat tempformv/mvops.sh

无误后,执行命令

chmod +x tempformv/mvops.sh
tempformv/mvops.sh

把文件从temp目录移回来

mv tempformv/* . 

完成