LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 857|回复: 10

问个关于cp的弱弱的问题

[复制链接]
发表于 2005-1-14 08:36:29 | 显示全部楼层 |阅读模式
要cp一个文件夹下所有的文件到其它地方,但是要剔除一些不需要cp的,请教各位了,ths
发表于 2005-1-14 09:57:14 | 显示全部楼层
这个问题可不弱哦,至少我不太清楚啊
你看看MAN CP 里有没有
回复 支持 反对

使用道具 举报

发表于 2005-1-14 10:17:02 | 显示全部楼层
先用find找出需要复制的文件,然后再用cp
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-14 12:26:38 | 显示全部楼层
我想到了一个实现方法(用shell),不过觉得有点罗嗦,哪为dx可以有更好的方法?
#!/bin/bash
ls -l /tmp > ./ss
awk '{print $9}' ./ss > s1
cat s1|grep -v aa > s2
for i in $(<./s2)
do
cp /tmp/$i ./22
done

其中aa是不需要cp的文件
这样的话如果有10个甚至更多的文件不要cp就不行了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-14 12:27:27 | 显示全部楼层
考虑过用find和xargs,但是一直用不好:)
回复 支持 反对

使用道具 举报

发表于 2005-1-14 19:39:03 | 显示全部楼层
用mc不好吗?
回复 支持 反对

使用道具 举报

发表于 2005-1-15 11:20:33 | 显示全部楼层
管道,管道!前面几行完全可以写在一起啊  
Post by bluepoin
我想到了一个实现方法(用shell),不过觉得有点罗嗦,哪为dx可以有更好的方法?
#!/bin/bash
ls -l /tmp > ./ss
awk '{print $9}' ./ss > s1
cat s1|grep -v aa > s2
for i in $(<./s2)
do
cp /tmp/$i ./22
done

其中aa是不需要cp的文件
这样的话如果有10个甚至更多的文件不要cp就不行了!
回复 支持 反对

使用道具 举报

发表于 2005-1-15 13:05:52 | 显示全部楼层
例如要把当前目录下所有的C文件复制到dst_position,可以用
find -name "*.c" | xargs -i cp {} dst_position
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-17 15:37:55 | 显示全部楼层
hyoga 老兄说的前面几行使用管道符是可以的,但是这样并没有简化问题,另外使用for语句的话(且需要cp的文件比较多的话)则系统资源占用比较大:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-17 16:04:16 | 显示全部楼层
偶大概没有把问题说明白。
同一个文件夹下有很多文件需要cp到其它地方,同样有很多文件不需要cp,如何实现?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表