关于Linux下通配符使用问题(cp命令的操作)

2012-12-27 20:17:01 +08:00
 Alpha
我常用cp命令复制文件和文件夹都会遇到的问题,比如:

/example
|--/a
|--/b
|--/c
|--/d
|--/e.txt
……(假设此目录有上千个文件)


/example2
|--/f

我想用拷贝exmaple目录下所有的子目录和文件到example2可以用:
cp -rf /exmaple/* /example2

但如果我不想拷贝其中的/exmaple/d/ 这个子目录到 /example2,要怎么做?
6418 次点击
所在节点    Linux
10 条回复
Js
2012-12-27 20:24:45 +08:00
cp -rf /exmaple/!(d) /example2
lusin
2012-12-27 20:24:47 +08:00
拷过去再把/d删除掉
Muninn
2012-12-27 20:27:05 +08:00
@lusin 也许不想拷贝是因为太大浪费时间
napoleonu
2012-12-27 20:39:56 +08:00
cd /exmaple/ ; ls | grep -v 'd' | xargs -n1 -i cp -rf {} /example2
plprapper
2012-12-27 20:45:47 +08:00
压缩打包的时候是有exclution之类的参数排除掉 一些文件或者目录的
先把拷贝的包。。压缩一个排调不要的 然后再解压。。。放好 。

哈哈 这是我的第一反应
cp 没注意有没有类似的参数
lululau
2012-12-27 20:53:41 +08:00
如果这个目录下面有成千上万个文件,那你最好不要用通配符,可能会出现 argument list too long 的问题,建议使用find

find . -not -name filename -maxdepth 1 -exec cp -a {} /example2 \;
Alpha
2012-12-27 20:56:46 +08:00
@Muninn @lusin 就是因为那个文件夹太大

谢谢大家
cabbala
2012-12-27 21:16:50 +08:00
terry
2012-12-28 17:05:42 +08:00
这种情况肯定是用 rsync 然后 --exclude 不需要的目录(或者 --exclude-from 一个文本文件)这么干了,cp 太挫不靠谱。
pyKun
2012-12-28 17:36:05 +08:00
@Alpha

@terry
@cabbala 这两个同学的回复是正解

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/56013

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX