linux下用脚本将目录内的文件分类到各自的创建年份(如2023)或年月份(如2023/202308)目录内

第一个if判断语句中判定只有是文件的时候才执行mv操作,并忽略一些特定

第二个if判断目录不存在时创建目录

最后mv文件到目录内

脚本执行前目录内容:

2022-01-file

2023-02-file

脚本执行后目录内容:

2022

|2022-01-file

2023

|2023-02-file

bash 复制代码
#!/bin/bash
#for line in `ls -lhrt`
for line in `ls -lhrt | grep -v moveToModifyDir.sh | awk -F " " '{ print $9}'`
do
    if [ -f "$line" ] && [ "$line" != "" ] \
        && [ "$line" != "." ] \
        && [ "$line" != ".." ] \
        && [ "$line" != "desktop.ini" ] \
        && [ "$line" != "@eaDir" ] \
        && [ "$line" != "Thumbs.db" ]
    then
        modifyYear=`stat $line | grep Modify | awk -F " " '{ print $2 }' | awk -F "-" '{ print $1 }'`
        modifyMonth=`stat $line | grep Modify | awk -F " " '{ print $2 }' | awk -F "-" '{ print $2 }'`
        echo "file: $line modifyYear is: $modifyYear modifyMonth is: $modifyMonth"
        realDir="${modifyYear}${modifyMonth}/"
        if [ ! -d $realDir ]
        then
            echo "$realDir not exist, ready to mkdir"
            mkdir $realDir
        elif [ -d $realDir ]
        then
            echo "$realDir exist..."
        fi
        echo "realDir is: $realDir"
        mv $line $realDir
    fi
done

第二个脚本是先创建年份目录,再创建年+月子目录,并将文件移动到子目录内

脚本执行前目录内容:

2022-01-file

2023-02-file

脚本执行后目录内容:

2022

|2022-01

|2022-01-file

2023

|2023-02

|2023-02-file

bash 复制代码
#!/bin/bash
for line in `ls -lhrt | grep -v "moveToModifyDir.sh\|moveToYearDateDir.sh" | awk -F " " '{ print $9}'`
do
    if [ -f "$line" ] && [ "$line" != "" ] \
        && [ "$line" != "." ] \
        && [ "$line" != ".." ] \
        && [ "$line" != "dl.sh" ] \
        && [ "$line" != "desktop.ini" ] \
        && [ "$line" != "@eaDir" ] \
        && [ "$line" != "urls.txt" ] \
        && [ "$line" != "Thumbs.db" ]
    then
        modifyYear=`stat $line | grep Modify | awk -F " " '{ print $2 }' | awk -F "-" '{ print $1 }'`
        modifyMonth=`stat $line | grep Modify | awk -F " " '{ print $2 }' | awk -F "-" '{ print $2 }'`
        echo "file: $line                       modifyYear is: $modifyYear modifyMonth is: $modifyMonth"
        realDir="${modifyYear}/${modifyYear}${modifyMonth}/"
        echo "realDir is: $realDir"
        if [ ! -d $realDir ]
        then
            echo "\"$realDir\" dir not exist, ready to mkdir: $realDir"
            mkdir -p $realDir
        elif [ -d $realDir ]
        then
            echo "\"$realDir\" dir exist"
        fi
        mv $line $realDir
    fi
done
相关推荐
Andy杨2 小时前
20250718-1-Kubernetes 应用程序生命周期管理-应用部署、升级、弹性_笔记
linux·docker·容器
写写闲篇儿5 小时前
Python+MongoDB高效开发组合
linux·python·mongodb
一个龙的传说7 小时前
linux 常用命令
linux·服务器·zookeeper
Ching·9 小时前
esp32使用ESP-IDF在Linux下的升级步骤,和遇到的坑Traceback (most recent call last):,及解决
linux·python·esp32·esp_idf升级
子柒s9 小时前
Linux 基础
linux
MC皮蛋侠客10 小时前
Ubuntu安装Mongodb
linux·mongodb·ubuntu
2201_7534369510 小时前
ubuntu基础搭建
linux·运维·ubuntu
莫到空离12 小时前
LVS三种模式实战
linux·服务器·网络
Azxcc012 小时前
Linux内存系统简介
linux·性能优化·内存子系统