linux scp 排除文件夹,scp复制文件时排除指定文件
1. 前言
本文主要讲解如何在scp复制文件时排除指定文件。
举例:
我需要将所有*.c文件从名为hostA的电脑复制到hostB,包括所有目录。我使用以下scp命令,但不知道如何排除特定的文件(如*.out):
scp -r ~/projects/ user@hostB:/home/123/
如何告诉scp命令在Linux/Unix复制文件时排除指定的文件或目录呢?
可以使用scp命令在网络上的主机之间安全地复制文件。它使用ssh进行数据传输和身份验证。典型的scp命令语法如下:
scp file1 user@host:/path/to/test/
scp -r /path/to/source/ user@host:/path/to/test/
scp [options] /dir/to/source/ user@host:/dir/to/test/
2. scp复制文件时排除指定文件
我不认为您可以在使用scp命令复制文件时可以过滤或排除文件。但是,有一个很好的解决方案可以排除文件并使用ssh安全地复制它。本教程解释如何在使用scp递归复制目录时过滤或排除指定文件。
如何使用rsync命令排除文件
它的语法是:
rsync -av -e ssh --exclude='*.out' /path/to/source/ user@hostB:/path/to/test/
解释一下上面的命令:
-a : 递归到目录,即复制所有文件和子目录。此外,打开存档模式和所有其他选项 (-rlptgoD)
-v : 详细输出
-e ssh : 使用ssh作为远程shell,以便对所有内容进行加密
--exclude=’.out’ : 排除匹配模式的文件,例如。out或*.c等等.
rsync命令的例子
在本例中,从~/virt/目录递归复制所有文件,但排除所有*.新文件:
rsync -av -e ssh --exclude='*.new' ~/virt/ root@centos7:/tmp
如果在远程服务器上没有找到Rsync,则Rsync命令将失败。在这种情况下,尝试下面的scp命令,它在当前目录中使用bash shell模式匹配(它不会与-r选项一起工作):
ls
输出结果:
access.log-20190218 access.log-20190727 logip.new
复制当前目录中除.new文件外的所有内容:
shopt -s extglob
scp !(*.new) root@centos7:/tmp/
输出结果:
access.log-20190218 100% 4262 1.3MB/s 00:00
access.log-20190727 100% 836MB 32.7MB/s 00:25
3. 理解extglob shell选项来排除使用scp和rsync的文件
如果使用shopt命令(build tin)启用extglob bash shell选项,Linux系统可以识别几个扩展的模式匹配操作符,如下所示:
Operators
Description
?(pattern-list)
匹配给定模式的零次或一次出现
*(pattern-list)
匹配给定模式的零次或多次出现
+(pattern-list)
匹配给定模式的一个或多个匹配项
@(pattern-list)
匹配给定的模式之一
!(pattern-list)
匹配除给定模式之一之外的任何内容
4. 总结
本教程向您展示了如何在Linux或类unix操作系统下的网络上的主机之间使用scp或者rsync命令复制文件时排除指定的文件。有关更多信息,请参阅以下手册页:
man 1 rsync
man bash
man 1 scp
linux scp 排除文件夹,scp复制文件时排除指定文件相关推荐
- Windows10文件重命名/复制/移动时,导致文件资源管理器卡顿,解决方案
Windows10文件重命名/复制/移动时,导致文件资源管理器卡顿的解决方案 有时,重命名文件要卡顿好久,拖拽一个文件也要卡顿好久.解决方式很简单: (1)随便打开一个文件夹,点击左上角文件-> ...
- R语言使用fs包的dir_create函数在指定路径下创建新的文件夹、使用file_create函数在指定文件夹下创建文件
R语言使用fs包的dir_create函数在指定路径下创建新的文件夹.使用file_create函数在指定文件夹下创建文件 目录
- c语言如何重命名文件夹,VC 复制移动删除重命名文件文件夹
/* 能产生对话框的标志: FOF_SILENT //progress dialog FOF_RENAMEONCOLLISION //replace dialog FOF_NO ...
- 实时监测文件夹且根据条件自动删除指定文件夹下文件
一.需求说明 当我们的项目开发完成部署到生产环境使用后,为了便于后续的运维工作(对问题及时排查和解决)在项目中编写了一些关于对异常情况或者实时数据自动生成对应的日志文件等内容,但是随着时间的流逝,这些 ...
- python读取多个文件夹图片_python或C++读取指定文件夹下的所有图片
本文实例为大家分享了python或C++读取指定文件夹下的所有图片,供大家参考,具体内容如下 1.python读取指定文件夹下的所有图片路径和图片文件名 import cv2 from os impo ...
- python找不到scripts文件夹_安装python时没有scripts文件夹如何处理
这次给大家带来安装python时没有scripts文件夹如何处理,处理安装python时没有scripts文件夹的注意事项有哪些,下面就是实战案例,一起来看一下. 安装Python2.7,好多次都不会 ...
- java把图片存入文件夹_将图片保存在指定文件夹中
我可以通过我的代码将图片保存在我想要的文件夹中,但这还不够好,因为我的代码在我的文件夹中提供了一个图像副本,而在图库中提供了另一个图像(DCIM) . 代码: Btngetdata.setOnClic ...
- ImageCLEF数据集处理(Python读取txt内容创建文件夹;将图片拷贝至指定文件夹)
1. 问题描述 做迁移时候用到公共数据集ImageCLEF, 但是给的结构如图: 有b,c,i, p四种图像数据,和list数据,对应每一条数据的名称及其标签,记录举例如下: b/252.car-si ...
- linux(文件、文件夹的复制与移动)
一.cp命令用于文件.文件夹的复制: 1.单个文件的复制: [root@localhost lianxi]# touch beautiful.txt ---新建beautiful空文件 [root ...
- linux 复制文件夹下的所有内容到目标文件夹
在linux 下可以使用cp 命令去复制内容例如 #复制到目录文件夹* 和 . 代表目录下的所有文件 cp ~/temp/* ~/text/ cp ~/temp/. ~/text/ #复制到当前文件夹 ...
最新文章
- Reading-又更新了一些内容【Kotlin+MVP+Retrofit】
- LINUX防火墙打开与关闭
- CV:计算机视觉技术之图像基础知识(二)—以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础)
- ASP.NET实现文件上传
- 【Linux】一步一步学Linux——free命令(80)
- 实现strlen()(c语言)
- 2007最受欢迎的十大Ajax技术文章
- 科目三考试里面的会车,调头,靠边停车通过标准
- 当用户流失比较明显后, 如何提升活跃度? push notification 是一个有效的方式吗?...
- 脚本编辑$RANDOM 和 case语句 (笔记)
- Bootstrap:弹出框和提示框效果以及代码展示
- 【信息系统项目管理师】第9章-项目人力资源管理 知识点详细整理
- 漫谈android系统(4)bring up panel
- 使用librdkafka
- Leetcode--用两个栈实现一个队列
- SpringBoot Mybatis Starter 解析
- 牛牛之瀛洲公园(09.10)
- 奇虎周鸿祎:创业者不要太偏执
- 在office2010的ppt中加入音乐
- 炎热夏季 本本散热板必不可少【lpxt】