一,
我的data文件夹目录中以每天日期为文件夹名存放着数据,
data
|
----20050821
----20050822
----20050822
正个data文件夹数据有6G大,我想data文件下每50个文件打包压缩,怎么用SHELL解决,
二,
试想data文件中有几百个文件,
data
|
--log 文件
--feaf
--464
--646
如果我想删除feaf,646以外的文件,怎么解决
carset 回复于:2005-07-24 02:32:31
想了半天第一个问题.
或许可以这样解决.
读文件列表.每50个写进个LOG,然后读LOG来压缩.(顺便可以把这个LOG当做压缩文件的清单:D 自我安慰.. 因为我太菜,解决不了这个问题)
第二个 就直接 find 或者 MV 你要留的文件走.RM 其他文件.MV 回来(如果
你要留的文件很少,或许这个方法速度稍微快点)
ls|grep -vE '^feaf$|^646$'|rm
这个也可以 删除除了 646跟feaf 外所有文件
Unicorn_angel 回复于:2005-07-25 09:49:37
那位对第一个问题,还有好的解决方法,
:P
lych 回复于:2005-07-25 10:36:24
引用:原帖由 "Unicorn_angel" 发表: 那位对第一个问题,还有好的解决方法,
:P
别的方法倒是有,但是并不见得比上面那个简便!
ttwking 回复于:2005-07-25 12:08:36
对于第一个问题可用如下代码:
Flag=0
Num=0
Seq=0
ls | while read FileName
do
if [ $Flag -eq 0 ]
then
tar -cf test${Seq}.tar $FileName
Flag=1
else
tar -rf test{Seq}.tar $FileName
(( Num+=1 ))
if [ $Num -eq 50 ]
then
Flag=0
Num=0
(( Seq+=1 ))
fi
fi
done
请多指正。
carset 回复于:2005-07-25 13:24:59
学习中..
yaofulin 回复于:2005-07-25 15:41:25
ls|grep -vE '^feaf$|^646$'|rm
这样可以吗?
carset 回复于:2005-07-25 16:30:03
引用:原帖由 "yaofulin" 发表: ls|grep -vE '^feaf$|^646$'|rm
这样可以吗?
:P
这样可以。 grep -v 列出非符合条件 -E 扩展 (是为了用 “|”)
|