复制时如何排除某些文件

sh/bash/dash/ksh/zsh等Shell脚本
回复
novesky
帖子: 159
注册时间: 2008-07-12 17:18

复制时如何排除某些文件

#1

帖子 novesky » 2011-11-20 22:22

才发现cp竟然没有类似与--exclude的选项,这么一来复制一个目录时如果有很多不想复制的比如是某个后缀的文件就讨厌了。有什么idea不?
头像
sunfish
帖子: 989
注册时间: 2008-05-03 1:53

Re: 复制时如何排除某些文件

#2

帖子 sunfish » 2011-11-21 2:45

可以配合其他命令操作
cp $(ls | grep -v "*.[后缀]") [目标目录]
docker && kubernetes
novesky
帖子: 159
注册时间: 2008-07-12 17:18

Re: 复制时如何排除某些文件

#3

帖子 novesky » 2011-11-22 14:26

sunfish 写了:可以配合其他命令操作
cp $(ls | grep -v "*.[后缀]") [目标目录]
目录层次比较多这个肯定不行了
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 复制时如何排除某些文件

#4

帖子 eexpress » 2011-11-22 14:29

你find就是。find 后面跟上-exec mv {} ~/xxxx \;
● 鸣学
头像
naturalaw
帖子: 1360
注册时间: 2011-09-06 22:04

Re: 复制时如何排除某些文件

#5

帖子 naturalaw » 2011-11-22 21:26

笨辦法.
要排除的肯定是少了.先把它挪走,復制完成再挪回去. :em20 :em20
  • The eternal law
novesky
帖子: 159
注册时间: 2008-07-12 17:18

Re: 复制时如何排除某些文件

#6

帖子 novesky » 2011-11-26 21:30

eexpress 写了:你find就是。find 后面跟上-exec mv {} ~/xxxx \;
我希望还是保持原来的目录结构
niejieqiang
帖子: 151
注册时间: 2009-05-29 22:05

Re: 复制时如何排除某些文件

#7

帖子 niejieqiang » 2011-11-27 0:41

shell命令:

代码: 全选

find Documents/ \! -name "*.pl" | cpio -pd Public/
perl用File::Copy::Recusive似乎也行

嘻嘻,你试试
lam2888
帖子: 23
注册时间: 2009-10-16 1:16

Re: 复制时如何排除某些文件

#8

帖子 lam2888 » 2012-05-08 2:43

用tar不就行了吗? :em06 具体好像是: tar cf - 要备份的目录 --exclude 要排除的目录 | tar xvf - -C 要还原的目录。 --exclude 后面可以find 吗?
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 复制时如何排除某些文件

#9

帖子 lilydjwg » 2012-05-08 3:00

lam2888 写了:用tar不就行了吗? :em06 具体好像是: tar cf - 要备份的目录 --exclude 要排除的目录 | tar xvf - -C 要还原的目录。 --exclude 后面可以find 吗?
还可以用 rsync 呢。如果要用 find 的话,配合 rsync 的 --files-from 选项吧。
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 复制时如何排除某些文件

#10

帖子 aerofox » 2012-05-08 19:17

还有古老的 cpio
回复