#!/bin/bash

# 指定されたフォルダを変数に格納
rel="$1"

# 親フォルダの指定がなかった場合は終了
if [ "a${rel}" = "a" ] ; then
	echo フォルダを指定してください。
	echo 例: foldersort /mnt/sdb1
	exit 1
fi

# 親フォルダが存在しなかった場合も終了
if [ ! -d "${rel}" ]; then
	echo フォルダが存在しません。
	exit 1
fi

# 区切り文字を改行に
_IFS="$IFS";IFS="
"

# 親フォルダの絶対パスを取得
abs=$(cd $(dirname "${rel}") && pwd)/$(basename "${rel}")

# 親フォルダへ移動
cd "${abs}"

# 子フォルダをリストアップして順番に処理
for i in `find . -type d | tail -n +2 | LANG=C sort -f -n` ; do
	
#	# 子フォルダに移動
	cd "${i}"
	echo ${i}
	
#	# 一時フォルダを作成
	mkdir ./_sorttmp_
	mv * ./_sorttmp_/ 2> /dev/null
	cd ./_sorttmp_
	
#	# ファイル名をリストアップして順番に移動させる
	for j in `ls -1 -v` ; do
		mv "${j}" ../
		echo ${j}
	done
	echo ----------
	
#	# 一時フォルダを削除
	cd ../
	rmdir ./_sorttmp_
	
#	# 親フォルダに戻る
	cd "$abs"
	
done

# 区切り文字を戻す
IFS="$_IFS"
