递归处理后find选项对子目录不起作用的问题
发布时间:2009-11-06 21:42:54来源:红联作者:purplejack
我想把当前目录(包括子目录)下文件大小小于1000k的文件复制到size-1000k文件夹中,执行如下命令find ./ -size -1000k -a ! -name '*.o' | xargs -i cp -r {} size-1000k/后发现拷过去的文件中有很多大于1000k的文件中(都在子目录下),后来我又试了find ./ -size -1000k -a ! -name '*.o' -exec cp -r {} size-1000k/ \;还是一样。不用-r递归处理不会出现这种情况但子目录路径全丢失了,我把这个问题归结为递归处理后find选项对子目录不起作用。请问有谁能解决这个问题?有没有一种方法可以既保留子目录路径又不出现大于1000k的文件?我在网上google了好多相关文章都没找到解决办法所以只好来论坛请教高手,有知悉者请不吝指教。非常感谢!!
purplejack 于 2009-11-08 13:19:20发表:
用如下代码可以实现,呵呵!!
find . -type f -size -1000k \! -name '*.o' | tar cT - | tar Cxv size-1000k