find 小案例
说明:前几天对生产环境的一些重要数据进行备份时用到了find,查找特定符合条件的文件名后拷贝至指定目录,但是只拷贝了部分匹配到的文件
小案例模拟还原:
[root@centos- ~]# ll /test
total
[root@centos- ~]# ll
total
-rw-r--r-- root root Nov : .log
-rw-r--r-- root root Nov : .log
-rw-r--r-- root root Nov : .log
-rw-------. root root Apr anaconda-ks.cfg
-rw-r--r-- root root Nov : a.py
-rw-r--r-- root root Nov : b.py
-rw-r--r-- root root Nov : c.py
-rw-r--r-- root root Jun : epel.repo
-rw-r--r-- root root Nov : e.txt
-rw-r--r-- root root Nov : f.txt
-rw-r--r-- root root Nov : g.txt
[root@centos- ~]# find ./ -type f -name "*txt" -o -name "*py"
./a.py
./b.py
./c.py
./e.txt
./f.txt
./g.txt
[root@centos- ~]# find ./ -type f -name "*txt" -o -name "*py" -exec cp {} /test \;
[root@centos- ~]# ll /test
total
-rw-r--r-- root root Nov : a.py
-rw-r--r-- root root Nov : b.py
-rw-r--r-- root root Nov : c.py
都能匹配到,但是为啥只拷贝了 -name "*py" 匹配到的文件,于是把两个 -name 的顺序换一下,看下什么情况?
[root@centos- ~]# rm -f /test/*
[root@centos-7 ~]# ll /test
total 0
[root@centos-7 ~]# find ./ -type f -name "*py" -o -name "*txt" -exec cp {} /test \;
[root@centos-7 ~]# ll /test
total 0
-rw-r--r-- 1 root root 0 Nov 20 11:37 e.txt
-rw-r--r-- 1 root root 0 Nov 20 11:37 f.txt
-rw-r--r-- 1 root root 0 Nov 20 11:37 g.txt
看来只会拷贝最后面一个 -name 匹配到的文件,于是改写下条件表达式
[root@centos- ~]# rm -f /test/*
[root@centos-7 ~]# ll /test
total 0
[root@centos-7 ~]# find ./ -type f \( -name "*py" -o -name "*txt" \) -exec cp {} /test \;
[root@centos-7 ~]# ll /test/
total 0
-rw-r--r-- 1 root root 0 Nov 20 11:38 a.py
-rw-r--r-- 1 root root 0 Nov 20 11:38 b.py
-rw-r--r-- 1 root root 0 Nov 20 11:38 c.py
-rw-r--r-- 1 root root 0 Nov 20 11:38 e.txt
-rw-r--r-- 1 root root 0 Nov 20 11:38 f.txt
-rw-r--r-- 1 root root 0 Nov 20 11:38 g.txt
find 小案例的更多相关文章
- 机械表小案例之transform的应用
这个小案例主要是对transform的应用. 时钟的3个表针分别是3个png图片,通过setInterval来让图片转动.时,分,秒的转动角度分别是30,6,6度. 首先,通过new Date函数获取 ...
- shell讲解-小案例
shell讲解-小案例 一.文件拷贝输出检查 下面测试文件拷贝是否正常,如果cp命令并没有拷贝文件myfile到myfile.bak,则打印错误信息.注意错误信息中basename $0打印脚本名.如 ...
- [jQuery学习系列六]6-jQuery实际操作小案例
前言最后在这里po上jQuery的几个小案例. Jquery例子1_占位符使用需求: 点击第一个按钮后 自动去check 后面是否有按钮没有选中, 如有则提示错误消息. <html> &l ...
- 02SpringMvc_springmvc快速入门小案例(XML版本)
这篇文章中,我们要写一个入门案例,去整体了解整个SpringMVC. 先给出整个项目的结构图:
- React.js入门小案例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...
- SqlDependency缓存数据库表小案例
SqlDependency的简介: SqlDependency是outputcache网页缓存的一个参数,它的作用是指定缓存失效的数据库依赖项,可以具体到数据库和表. SqlDependency能解决 ...
- JavaScript apply函数小案例
//回调函数1 function callback(a,b,c) { alert(a+b+c); } //回调函数2 function callback2(a,b) { alert(a+b); } / ...
- Session小案例------完成用户登录
Session小案例------完成用户登录 在项目开发中,用户登陆功能再平常只是啦,当用户完毕username和password校验后.进入主界面,须要在主界面中显示用户的信息,此时用ses ...
- ch1-vuejs基础入门(hw v-bind v-if v-for v-on v-model 应用组件简介 小案例)
1 hello world 引入vue.min.js 代码: ----2.0+版本 <div id="test"> {{str}} </div> <s ...
- jquery mobile小案例
---恢复内容开始--- [jquery mobile小案例]效果图如下: 首先先创建一个页面主要使用data-role="page"这个指令,我们给它起个id="pag ...
随机推荐
- 使用JavaScript·求数组的最大值和最小值
前言 在数组中并没有提供arr.max()和arr.min()这样的方法.那么是不是可以通过别的方式实现类似这样的方法呢?那么今天我们就来整理取出数组中最大值和最小值的一些方法. 法一:其实利用 ...
- Go语言操作MySQL
MySQL是常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库. Go操作MySQL 连接 Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的 ...
- 什么是ECMAScript、什么又是ECMA?
转载:针对于ECMA5Script .ECMAScript6.TypeScript的认识 什么是ECMAScript.什么又是ECMA? Ecma国际(Ecma International)是一家国际 ...
- texlive支持中文的简单方法
1.确保tex文件的编码方式是UTF-8, 2.在文档开始处添加一行命令即可,即 \usepackage[UTF8]{ctex} , 如下所示: \documentclass{article} \us ...
- .Net Core Serverless初体验
什么是Serverless Serverless 是一个当今软件世界中比较新的话题.它并没有一个普遍公认的权威定义,每个人每个企业对它的解释可能都有不同,而 Serverless 正是在这种情况下不断 ...
- Vijos 1067守望者的烦恼
背景 守望者-warden,长期在暗夜精灵的的首都艾萨琳内担任视察监狱的任务,监狱是成长条行的,守望者warden拥有一个技能名叫“闪烁”,这个技能可以把她传送到后面的监狱内查看,她比较懒,一般不查看 ...
- Elasticsearch Java API 很全的整理
Elasticsearch 的API 分为 REST Client API(http请求形式)以及 transportClient API两种.相比来说transportClient API效率更高, ...
- 理解numpy.dot()
import numpy.matlib import numpy as np a = np.array([[1,2],[3,4]]) b = np.array([[11,12],[13,14]]) p ...
- Linux防火墙常用操作
/tcp —— 配置白名单 sudo systemctl start firewalld — 启动防火墙 sudo firewall-cmd --state - 看状态 sudo firewall-c ...
- pdfminer API介绍:pdf网页爬虫
安装 pip install pdfminer 爬取数据是数据分析项目的第一个阶段,有的加密成pdf格式的文件,下载后需要解析,使用pdfminer工具. 先介绍一下什么是pdfminer 下面是官方 ...