V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Alpha
V2EX  ›  Linux

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

  •  
  •   Alpha ·
    alphachoi · 2012-12-27 20:17:01 +08:00 · 6419 次点击
    这是一个创建于 4384 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我常用cp命令复制文件和文件夹都会遇到的问题,比如:

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


    /example2
    |--/f

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

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

    哈哈 这是我的第一反应
    cp 没注意有没有类似的参数
    lululau
        6
    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
        7
    Alpha  
    OP
       2012-12-27 20:56:46 +08:00
    @Muninn @lusin 就是因为那个文件夹太大

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

    @terry
    @cabbala 这两个同学的回复是正解
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2638 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:30 · PVG 19:30 · LAX 03:30 · JFK 06:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.