シェルを使用して、YYYY-MM-DDディレクトリ内のファイルをYYYY-MM / DDに移動します

1.シェルスクリプトdir10.shを記述して、現在の日付の365日前にディレクトリYYYY-MM-DDを作成します。以下に10個のファイル$ RANDOM.logがあります。

vim dir10.sh

#!/bin/bash

for i in {1..365} ;do
        DIR=`date -d "-$i day" +%F`
        mkdir /data/test/$DIR

    for j in {1..10};do
        
        touch /data/test/$DIR/$RANDOM.log
 done 
        cd ..
done

スクリーンショットを実行します(treeコマンドシステムはデフォルトでは使用できません。yuminstalltree-yをインストールする必要があります)

2.YYYY-MM-DDディレクトリ内のファイルをYYYY-MM / DDに移動します

vim mv_dir10.sh

#!/bin/bash

DIR=/data/test
cd $DIR
for DIR in * ;do

        YYYY_MM=`echo $DIR|cut -d'-' -f1,2`
        DD=`echo $DIR|cut -d'-' -f3`
        [ -d $YYYY_MM/$DD ] || mkdir -p $YYYY_MM/$DD
        mv $DIR/* $YYYY_MM/$DD
done

----------------------------------------------------------
#将YYYY-MM-DD目录移动到YYYY-MM下

#!/bin/bash

DIR=/data/test
cd $DIR
for DIR in * ;do

        YYYY_MM=`echo $DIR|cut -d'-' -f1,2`
        [ -d $YYYY_MM ] || mkdir  $YYYY_MM
        mv $DIR $YYYY_MM
done

 

 

おすすめ

転載: blog.csdn.net/l_liangkk/article/details/114266741