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 ...
随机推荐
- python 写入txt的新方法
最新发现有新方法可以对txt等进行操作,比较有意思,之前没见过,故记录下 传统方法 with open(ur'D:\Desktop\a123.txt', 'a') as f: #以写的方式打开 f.w ...
- .Net Core与Vue.js模块化前后端分离快速开发解决方案(NetModular)
NetModular是什么? NetModular不仅仅是一个框架,它也是一整套的模块化与前后端分离的快速开发的解决方案,目标是致力于开箱即用,让开发人员完全专注于业务开发,不需要关心底层封装和实现. ...
- Grafana 6.4 正式发布!
原文链接:Grafana 6.4 正式发布! 2019 年 10 月 2 日,也就是国内小伙伴们的放假期间,Grafana 实验室正式发布了 Grafana 6.4 版本.这个版本主要围绕数据模型和指 ...
- Matplotlib之Bar Chart
Matplotlib之Bar Chart: import numpy as np import matplotlib.pyplot as plt data = [[300, 200, 250, 150 ...
- Timed out after 30000 ms while waiting to connect
今天使用mongo-java-drive写连接mongo的客户端,着实被上面那个错坑了一把.回顾一下解决过程: 报错: com.mongodb.MongoTimeoutException: Timed ...
- Linux入门(网络配置)
Linux入门之 网络管理及网络配置 网络管理 NetworkManager,是一个为系统自动连接到网络提供检测和配置的程序,NetworkManager对无线和有线网络都可以管理,特别对于无线网 ...
- python 中的一点新知识
逻辑行与物理行 所谓物理行(Physical Line)是你在编写程序时 你所看到 的内容.所谓逻辑行(Logical Line)是 Python 所看到 的单个语句.Python 会假定每一 物理行 ...
- Windows 服务程序(一)
Windows 服务程序简介: Windows服务应用程序是一种需要长期运行的应用程序,它对于服务器环境特别适合. 它没有用户界面,并且也不会产生任何可视输出.任何用户消息都会被写进Windows事件 ...
- Visual Studio 生成事件这件小事
在上一篇<Visual Studio 调试技巧>中,介绍了一些VS常用的调试操作,今天,聊一聊VS当中一个不太常见,但有时又有妙用的操作——VS生成事件. 一.什么是VS生成事件 简单来说 ...
- 掌握git基本功
前言 最近想把代码传到GitHub上,结果我发现的demo的npm全是本地安装,上穿到GitHub要死要死,几百M,然后我就搜了下怎么不上传node_modules弄了半天也没成功,于是准备静下心学一 ...