在日常的运维工作中,经常会涉及到在拷贝某个目录时要排查其中的某些文件。废话不多说,下面对这一需求的操作做一记录:

linux系统中,假设要想将目录A中的文件复制到目录B中,并且复制时过滤掉源目录A中的文件a和b
做法如下:
#cd A
#cp -r `ls |grep -v a |grep -v b| xargs` B
注意:
1)上面在cp命令执行前,最好提前cd切换到源目录A下,不然就要在ls后跟全路径,否则就会报错。
2)命中中的xargs参数加不加效果都一样,不过最好是加上,表示前面的命令输出
3)grep -v中的-v表示过滤,有多少文件的过滤需求,就执行多少个grep -v操作
4)命令替换``可以用$()代替

实例如下:
将/tmp/bo目录中的文件复制到/tmp/test目录中,复制时过滤f和s文件!
[root@cdn bo]# ll /tmp/bo
total 12
drwxr-xr-x 2 root root 4096 Nov 3 17:55 10
drwxr-xr-x 2 root root 4096 Nov 3 17:55 20
drwxr-xr-x 2 root root 4096 Nov 3 17:55 30
-rw-r--r-- 1 root root 0 Nov 3 17:33 4
-rw-r--r-- 1 root root 0 Nov 3 17:33 5
-rw-r--r-- 1 root root 0 Nov 3 17:33 d
-rw-r--r-- 1 root root 0 Nov 3 17:33 f
-rw-r--r-- 1 root root 0 Nov 3 17:33 s
-rw-r--r-- 1 root root 0 Nov 3 17:33 w
[root@cdn tmp]# ls /tmp/test/
[root@cdn tmp]#

[root@cdn tmp]# cd /tmp/bo/
[root@cdn bo]# cp -r $(ls |grep -v f|grep -v s|xargs) /tmp/test
[root@cdn bo]# ls /tmp/test
10 20 30 4 5 d w

以上的方法也适用于远程拷贝scp操作,比如:
[root@cdn resin]# scp -r `ls|grep -v log|xargs` root@192.168.1.241:/opt/resin/

另外:
上面的需求也可以使用for循环方式进行操作。注意for循环中使用绝对路径!
[root@cdn tmp]# cd /tmp
[root@cdn tmp]# ls bo
10 20 30 4 5 d f s w
[root@cdn tmp]# ls test
[root@cdn tmp]# for i in `ls /tmp/bo|grep -v f|xargs`;do cp -r /tmp/bo/$i /tmp/test;done
[root@cdn tmp]# ls /tmp/test/
10 20 30 4 5 d s w

linux下拷贝命令中的文件过滤操作记录的更多相关文章

  1. Linux下的命令,删除文件夹下的所有文件,而不删除文件夹本身

    Linux下的命令,删除文件夹下的所有文件,而不删除文件夹本身 rm -rf *

  2. Linux下磁盘分区、挂载、卸载操作记录

    Linux下磁盘分区.挂载.卸载操作记录. 操作环境:CentOS release 6.5 (Final) Last :: from 118.230.194.76 [root@CentOS ~]# [ ...

  3. 在Linux下使用命令行打印文件

    近期需要将数学笔记打印出来复习,才发现Linux KDE环境下的默认PDF软件Okular根本无法将我在GoodNotes B5大小的页面写下的内容自适应地放大到A4纸上,只能以页面的原始尺寸打印.然 ...

  4. Linux下dos2unix命令将windows文件编码格式dos转换成Unix格式

    问题描述: 在Windows系统下面使用文本编辑器notepad后传到Linux系统下的话 Linux下处理和执行一般都存在一些问题,我们可以通过命令查看文件是否是dos格式的, 如果有如图所示的M标 ...

  5. linux下修改jar中的文件

    解压修改后再打包 解压: jar xvf xxx.jar 打包: jar cvfm0 xxx.jar META-INF/MANIFEST.MF ./ 注: -m参数可以将 一个具体的mainfest文 ...

  6. 2017.7.18 linux下用户、组和文件的操作

    参考来自:<鸟叔的linux私房菜(基础学习篇)-第14章> 0 目的 在linux下搭建ELK环境时,因为elasticsearch不能在root下操作,所以要为其新增一个用户,以及随之 ...

  7. Linux下Maven私服Nexus3.x环境构建操作记录【转】

    Maven介绍Apache Maven是一个创新的软件项目管理和综合工具.Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文件.Ma ...

  8. Linux下Maven私服Nexus3.x环境构建操作记录

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79553747 私服介绍 私服是指私有服务器,是架设在局域网的一种特殊的远程仓库, ...

  9. linux下通过命令行把文件拷贝到U盘上

    常用linux,往U盘拷贝文件是常用的一种方法.下面这个方法是笔者亲测有效,暂时记录下来. 1.插入U盘,fdisk -l查看U盘是哪个设备(比如/dev/sdb1)然后mount  /dev/sdb ...

随机推荐

  1. 浅谈CommandBehavior枚举的独特之处

    提供对查询结果和查询对数据库的影响 此枚举有一个 FlagsAttribute 属性,通过该属性可使其成员值按位组合. 命名空间:  System.Data程序集:  System.Data(在 Sy ...

  2. [翻译]用 Puppet 搭建易管理的服务器基础架构(3)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第三部分. 本文由 伯乐在线 - Wing 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:Manuel Kiessling.欢迎加 ...

  3. js监听input是第几次click

    我很多问题啊 真的是,然后我有问题就博问啊 ,博问的东西我还是放到博客里面来吧 因为我不怎么看博问 博客的话经常看, 恩 都是一开始我不懂 然后园友来解答的 真的很感谢这些园友 不多说 上代码吧 其实 ...

  4. cocos2d-x3.3 以前版本 工程Xcode6编译时的问题

    Undefined symbols for architecture i386: "_fwrite$UNIX2003", referenced from: _unixErrorHa ...

  5. 操作DOM

    操作dom一般是如下4个:更新:更新该DOM节点的内容,相当于更新了该DOM节点表示的HTML的内容:遍历:遍历该DOM节点下的子节点,以便进行进一步操作:添加:在该DOM节点下新增一个子节点,相当于 ...

  6. 【requireJS路径加载】与程序员小卡的交流

    这两天正好看到了程序员小卡同学的一篇博客,里面对requireJS路径的解析做了一些说明,里面有点问题待解决,我这里正好知道一点,所以整理成文,不知对小卡同学是否有帮助. http://www.cnb ...

  7. [deviceone开发]-do_SegmentView和do_SlideView联动的示例

    一.简介 示例展示do_SegmentView和do_SlideView联动的使用,这二个组件很常用,而且这个组合也非常常用,类似网易新闻的效果,上面滑动带动下面的slideview滑动,反过来也是. ...

  8. SwipeRefreshLayout + RecyclerView 实现 上拉刷新 和 下拉刷新

    下拉刷新和上拉刷新都用SwipeRefreshLayout 自带的进度条 布局 <?xml version="1.0" encoding="utf-8"? ...

  9. border 外边框

    语法: border:<line-width> || <line-style> || <color> <line-width> = <length ...

  10. Android 四大组件之再论BroadCast

    BroadCast 是android提供的跨进程通讯的有一利器. 1.异步执行onReceiver @Nullable public abstract Intent registerReceiver( ...