递归写的,不太好看,反正能用,多担待
#!/bin/bash
function func {
for name in $1*
do
if [ -d "$name" ]
then
# echo "$name is a d"
func $name/ $2 $p
elif [ -f "$name" ]
then
echo "$name is a file"
c=$2${1#*$p}
if [ -d "$c" ]
then
mv $name $c
else
mkdir -p $c
mv $name $c
fi
fi
done
}
p=$1
#echo "$1 $2 $p"
func $1 $2 $p
存成movefile.sh,修改权限
chmod 755 movefile.sh
然后运行,带上变量 ,第一个变量是from的绝对路径,第二个是to的绝对路径。比如:
./movefile.sh /nfs/upload/ /nfs_bak/upload/
脚本可以把/nfs/upload/下所有年_月/日期/下的文件mv到指定的/nfs_bak/upload/下,不存在的路径会自动生成后再mv