- 论坛徽章:
- 1
|
我来试试
你的给的信息很少,我假设,有这个400万的文件在
/dev/sda3 <-- 对应 路径为 /sda3
准备转移到
/dev/sda4 <-- 对应 路径为 /sda4
1. 既然是是按年月来的,我假设为年,月也类似,不过有可能要写的很长,假设从 2006年开始,假设文件为 一般文件
mkdir /sda4/{2006,2007,2008,2009}
2.对2006连
find /sda -type f \( -mtime -200601010000 -mtime +200612312359 \) | xargs mv -t {} /sda4/2006/{} ;
3.对2007年
find /sda -type f \( -mtime -200701010000 -mtime +200712312359 \) | xargs mv -t {} /sda4/2006/{} ;
....
本来写成
形如
$ find . \( -type d -a -exec chmod 771 {} \; \) -o \
\( -name "*.BAK" -a -exec chmod 600 {} \; \) -o \
\( -name "*.sh" -a -exec chmod 755 {} \; \) -o \
\( -name "*.txt" -a -exec chmod 644 {} \; \)
这样就可以一句搞定,而且能节省时间,但是,你有400w,那-exex 和 -ok 会报参数太多。
ps:对于这个按照时间来分 ,有 atime ,ctime,mtime,使用mtime认为是一文件最后修改时间来定!
希望有用!
[ 本帖最后由 jerryjzm 于 2009-12-17 20:01 编辑 ] |
|