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

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. 【读书笔记】2016.11.19 北航 《GDG 谷歌开发者大会》整理

    2016.11.19 周六,我们在 北航参加了<GDG 谷歌开发者大会>,在web专场,聆听了谷歌公司的与会专家的技术分享. 中午免费的午餐,下午精美的下午茶,还有精湛的技术,都是我们队谷 ...

  2. Tomcat的下载和配置

    目录结构: // contents structure [-] 下载Tomcat 配置Tomcat 运行Tomcat 参考文章 下载Tomcat 读者可以到apache官网下载Tomcat.笔者下载的 ...

  3. 【JavaScript】浅析javaScript和HTML与unicode字符集的关系

    目录结构: // contents structure [-] javaScript和HTML的字符集 javaScript和HTML如何表现unicode字符集 参考文章 javaScript和HT ...

  4. jQuery实现页面内锚点平滑跳转

    平时我们做导航滚动到内容都是通过锚点来做,刷的一下就直接跳到内容了,没有一丝的滚动效果,而且 url 链接最后会有“小尾巴”,就像#keleyi,今天我就介绍一款 jquery 做的滚动的特效,既可以 ...

  5. JS网站右下角悬浮视窗可关闭广告

    效果体验:http://hovertree.com/texiao/js/4.htm 网站右下角悬浮视窗可关闭广告代码,可收缩.展开,关闭,内容区可自定义html,兼容IE8+.FireFox.Chro ...

  6. jquery固定在顶部的导航菜单

    体验效果:http://hovertree.com/texiao/jquery/6.htm HTML文件代码: <!DOCTYPE html PUBLIC "-//W3C//DTD X ...

  7. 第一次react-native项目实践要点总结

    今天完成了我的第一个react-native项目的封包,当然其间各种环境各种坑,同时,成就感也是满满的.这里总结一下使用react-native的一些入门级重要点(不涉及环境).注意:阅读需要语法基础 ...

  8. GPU大百科全书索引(有助于理解openGL工作流程)

    GPU大百科全书索引 0.GPU大百科全书 前传 看图形与装修的关系 1.GPU大百科全书 第一章:美女 方程与几何 2.GPU大百科全书 第二章 凝固生命的光栅化 3.GPU大百科全书 第三章:像素 ...

  9. iOS 10 :用 UIViewPropertyAnimator 编写动画

    英文:shinobicontrols 译文:戴仓薯 链接:http://www.jianshu.com/p/4244cf130478 [iOS 10 day by day] Day 1:开发 iMes ...

  10. CoreData数据库浅析

    Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象.在此数 ...