2012/02/10

【shell】 ファイルを指定ファイル数ごとにサブディレクトリに移動する

何年か前に書いたShell Script。
cutコマンドの使い方がすごい強引だったので、アップしてみます。
またどこかで使えるかも・・・


  • ファイルを指定されたディレクトリ以下に移動する
  • ファイル数が指定された数を越えないように、サブディレクトリに分割する


#! /bin/sh
# mv_files.sh
# ファイルを別ディレクトリに移動する
# 指定ファイル数ごとにサブディレクトリを作成する

FILE_NUM=30
TO_DIR=/work/mv_test/to_dir
FROM_DIR=/work/mv_test/from_dir

count=`find ${FROM_DIR} -type f | wc -l`
until [ $count -eq 0 ]; do
 if [ $count -le $FILE_NUM ]; then
  n=$count
 else
  n=$FILE_NUM
 fi
 # フォルダ作成
 dir_name=`date "+%Y%m%d%H%M%S%N"`
 mkdir "${TO_DIR}/${dir_name}"

 echo ${n}

 # ファイル移動
 files=`find ${FROM_DIR} -type f | sort | cut -d "
" -f 1-${n}`
 mv ${files} "${TO_DIR}/${dir_name}"

 count=`find ${FROM_DIR} -type f | wc -l`
done

0 件のコメント:

コメントを投稿