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
- 多系统交互中DBA需要实现的技术细节(r6笔记第90天)
- Kaggle Titanic 生存预测比赛超完整笔记(中)
- SDP(11):MongoDB-Engine功能实现
- SDP(10):文本式大数据运算环境-MongoDB-Engine功能设计
- Kaggle Titanic 生存预测比赛超完整笔记(下)
- SDP(9):MongoDB-Scala - data access and modeling
- 数据清理的遗留问题处理(r6笔记第87天)
- 一次DB time抖动发现的expdp的bug(r6笔记第86天)
- Python中map函数
- 10g,11g中数据库静默安装中的细小差别(r6笔记第85天)
- SDP(8):文本式数据库-MongoDB-Scala基本操作
- SDP(7):Cassandra- Cassandra-Engine:Streaming
- TensorFlow实现神经网络入门篇
- 27.反射,类加载器,设计模式,jdk新特性
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- graph attention network(ICLR2018)官方代码详解(tensorflow)-稀疏矩阵版
- graph attention network(ICLR2018)官方代码详解(tensorflow)
- 在SAP Spartacus产品明细页面用outlet显示自定义数据
- 如何在SAP Spartacus自定义Component里消费数据
- 使用ConfigModule.withConfig替换SAP Spartacus标准Component
- pod 资源对象
- 在Java8的foreach()中使用return/break/continue
- JavaScript 覆盖对象字段级别
- Zabbix5.0 问题记录
- 「查缺补漏」巩固你的Nginx知识体系
- 超级帐本合约调用——fabric SDK Node调用TBaaS的合约
- TBaaS合约调用_fabric SDK Node 不使用Connection Profile
- helm安装、使用、实践
- 浅析asp .net core 中间件
- 玩转jenkins - 在自己的服务器上安装jenkins