linux下拷贝命令中的文件过滤操作记录

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏梦里茶室

Android NOTE

一些小的点就记在这里吧…… MultiDex打包时zip错误 我遇到的是 Execution failed for task ':excelSior:packa...

1796
来自专栏Python爬虫与数据挖掘

如何在Ubuntu14.04中创建Python虚拟环境

在Ubuntu14.04中安装Python相对比较容易些,最简单的安装方法就是apt-get安装了,具体的教程可以戳这篇文章:在Ubuntu14.04中如何安装...

1332
来自专栏拂晓风起

Netbeans 使用 Hibernate 逆向工程 生成hbm和pojo

1584
来自专栏乐百川的学习频道

安装持续集成工具Jenkins

Jenkins是一个流行的持续集成框架,可以在我们提交项目的时候自动测试、运行和部署项目。虽然Jenkins使用Java编写,但是由于Jenkins支持多种语言...

4106
来自专栏coder修行路

关于Python3中venv虚拟环境

Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv。 该venv模块提供了创建轻量级“虚拟环境”,提供...

2315
来自专栏程序员同行者

[转载]windows下安装Python虚拟环境virtualenv,virtualenvwrapper-win

1821
来自专栏全华班

springcloud学习手册-Eureka(第二节)

导读 |springboot创建服务消费者和服务提供者 一、用springboot创建一个服务提供者(Service Provider) 模拟业务场景:根据用户...

3604
来自专栏Java开发

Linux下Tomcat指定JDK和设置内存大小

783
来自专栏Python小屋

虚拟Python环境可以这样创建

Python支持创建多个虚拟环境,每个虚拟环境都是包含Python和相应扩展库的一个目录,多个虚拟环境(文件夹)之间互相不干扰。如果有可能根据需要使用不同版本的...

3397
来自专栏叔叔的博客

SpringCloud注册中心集群搭建

Eureka Server的高可用 Enreka Server可以通过运行多个实例,并通过互相注册的方式来实现高可用的部署。 具体配置如下: spring.ap...

4005

扫码关注云+社区

领取腾讯云代金券