Linux文件比对,批量复制
--背景
工作中突然有一天文件服务器空间满了,导致文件存不进去,立马换了另外一台服务器作为文件服务器,将服务器挂载上去,原来的服务器修复之后需要重新换回来,但是需要将临时使用的服务器内的文件迁移至原文件服务器。
--解决办法
第一种方法:
第一步,记录一个文件夹的树结构
find /home/jp/UploadFile/vehicle/2019/03/16 -maxdepth 1 -printf "%P\n" | sort > /home/jp/temp
第二步,将比对文件夹的树结构和记录的树结构做比对
find /home/jp/UploadFile/vehicle/2019/03/16/16 -maxdepth 1 -printf "%P\n" | sort | diff /home/jp/temp - > /home/jp/diff.txt
第三步,将比对结果按格式输出
awk '/>/{printf("%s%s%s\n","cp /home/jp/UploadFile/vehicle/2019/03/16/16/",$2," /home/jp/UploadFile/vehicle/2019/03/16")}' /home/jp/diff.txt > /home/jp/cp.txt
在linux上执行生成的文件内的命令即可
第二种方法:
直接使用scp 命令 scp 源端目录 目标端用户@目标端IP:目标端目录 如 scp /home/test/test.jpg root@192.168.1.18:/home/test/
需要注意的是文件可以直接用上面的命令,但是直接跨服务器复制文件夹的话 需要在 scp 后面加上 -r 如: scp -r /home/test/ root@192.168.1.18:/home/test/
----------将文件复制过去后需要注意源端文件和文件夹权限问题,如果用户没有权限将访问不了对应资源-----------
Linux文件比对,批量复制的更多相关文章
- Linux文件的建立、复制、删除和移动命令
mkdir命令一.mkdir 命令使用权限 所有用户都可以在终端使用 mkdir 命令在拥有权限的文件夹创建文件夹或目录. 二.mkdir 命令使用格式 格式: mkdir [选项] DirName ...
- linux批量复制或删除同命名规则的文件
如图所示,有多个不同后缀的文件,但他们的前缀都是"QC_TZ.impute." 此时想批量复制图中的文件的话,可以考虑用命令行 cp QC_TZ.impute.* /your/de ...
- 【转】巧用DOS tree命令+批处理 实现 指定文件 批量复制!
转自:http://www.cnblogs.com/looky/archive/2010/01/24/1655292.html 今天一朋友叫我帮忙解决指定文件批量复制的问题,于是找了一大堆批处理命令, ...
- Linux命令行bash批量重命名文件
本文介绍下,在linux下使用shell批量重命名文件的例子,有需要的朋友参考下吧. 在linux中,重命名文件名,需要用到mv命令.如果需要批量重命名名一批文件,就需要写bash脚本或命令行了. 例 ...
- linux 下文件重命名/移动/复制命令(转)
linux 下文件重命名/移动/复制命令(转) linux下重命名文件:使用mv命令就可以了, 例:要把名为:abc 重命名为:123 可以这样操作: 重命名:MV命令 1.进入你的文件目录,运行 ...
- Python批量复制和重命名文件
Python批量复制和重命名文件 示例代码 #! /usr/bin/env python # coding=utf-8 import os import shutil import time impo ...
- linux学习(四)复制(cp)移动(mv)删除(rm)查找(find)文件、文件夹操作、软硬链接的区别
目录 复制文件 mv命令 rm命令 touch 命令 file命令 find命令 grep命令 mkdir命令 rmdir命令 @(复制移动删除查找文件.软硬链接的区别) 复制文件 cp命令用于复制文 ...
- linux文件复制与权限赋值
文件file内容赋值到file2中 1. cp file1 file2 2. cat file1 > file2 3. cat < file1 > file2 4. dd if= ...
- Linux命令(二) 复制文件 cp
cp命令用来复制文件或目录,当复制多个文件时,目标文件参数必须为已经存在的目录,否则将出现错误. cp命令默认不能复制目录,复制目录必须使用 -R 选项.cp命令具备了 ln命令的功能. 命令格式: ...
随机推荐
- navigator对象(了解即可)
navigator是window的子对象 navigator.appName // Web浏览器全称navigator.appVersion // Web浏览器厂商和版本的详细字符串navigator ...
- ajax下post提交方式下载文件的处理(转)
ajax是不能直接下载文件的,所以一般都是通过一个超链接的形式去下载一个文件 但是当牵扯到需要发送很多数据到服务器上再下载的时候超链接的形式就有些不好看了, /*=================== ...
- TypeScript 真香系列——接口篇
接口带来了什么好处 好处One —— 过去我们写 JavaScript JavaScript 中定义一个函数,用来获取一个用户的姓名和年龄的字符串: const getUserInfo = funct ...
- Node.js之判断字符串中是否包含某个字符串
server.txt内容如下: 阿里云服务器 关于应用场景,就不多说了,字符串是不论是后端开发还是前端开发等,都是要经常打交道了. test.js(node.js代码,只要被本地装了node.js环境 ...
- Jedis与Jedis连接池
1.Jedis简介 实际开发中,我们需要用Redis的连接工具连接Redis然后操作Redis, 对于主流语言,Redis都提供了对应的客户端: https://redis.io/clients 2. ...
- sensor【学习笔记】
高通sensor相关介绍不错的文章:https://www.cnblogs.com/linhaostudy/archive/2018/03/16/8578414.html 高通sensor的校准流程: ...
- ROLLUP、CUBE、GROUP BY的使用区别
1.ROLLUP:根据维度在数据结果集中进行的聚合操作,可多维度SELECT count(*) num,MONTH(register_time) times,`status` FROM `user` ...
- Mac Mini 2014 更换SSD 升级SSD
将自己的Mac Mini 2014版升级成固态硬盘 亲自动手, 还算顺利, 参考网络教程, 并改进了里面的关键步骤, 下面是原文链接 Mac Mini 2014 升级成SSD Mac Mini 拆机图 ...
- node.js GET与POST请求
node.js GET与POST请求 转 http://www.voidcn.com/article/p-ncglaiqx-bdx.html 标签 get post node.js 栏目 Node.j ...
- Operation之过滤操作符
filter 该操作符就是用来过滤掉某些不符合要求的事件 Observable.of(2, 30, 22, 5, 60, 3, 40, 9) .filter{ $0 > 10 } .subscr ...