网站首页 > linux / 正文
请关注本头条号,每天坚持更新原创干货技术文章。
如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习
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系统可以识别几个扩展的模式匹配操作符,如下所示:
OperatorsDescription?(pattern-list)匹配给定模式的零次或一次出现*(pattern-list)匹配给定模式的零次或多次出现+(pattern-list)匹配给定模式的一个或多个匹配项@(pattern-list)匹配给定的模式之一!(pattern-list)匹配除给定模式之一之外的任何内容
4. 总结
本教程向您展示了如何在Linux或类unix操作系统下的网络上的主机之间使用scp或者rsync命令复制文件时排除指定的文件。有关更多信息,请参阅以下手册页:
man 1 rsync man bash man 1 scp
本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:
https://www.linuxrumen.com/rmxx/1336.html
点击了解更多,快速查看更多的技术文章列表。
Tags:linux远程复制
- 上一篇:Linux常用功能——文件远程传输
- 下一篇:如何在Linux中复制文档
猜你喜欢
- 2024-11-26 Linux远程实战入侵攻击,欢迎一起交流
- 2024-11-26 scp文件传输命令详解,每日一命令
- 2024-11-26 在Linux系统中如何使用Osync脚本双向同步文件
- 2024-11-26 Linux 下用 SSH 登录远程服务器后把远程服务器文件传本地电脑
- 2024-11-26 Linux远程连接工具的使用
- 2024-11-26 Linux远程桌面连接使用教程 Widows终端远程连接Linux服务器
- 2024-11-26 Linux 远程操作:用脚本实现自动化 SSH 任务
- 2024-11-26 Linux远程rsync免密同步文件
- 2024-11-26 VSCode使用Remote-ssh搭建连接Linux的详细步骤
- 2024-11-26 远程文件拷贝命令SCP使用探讨