scp 同时复制多个文件到new文件夹
时间: 2024-12-15 12:28:41 浏览: 25
SCP(Secure Copy)命令通常用于从源主机复制文件到目标主机,但默认情况下不支持直接排除特定文件。不过,你可以通过组合`find`命令来实现这一功能。首先,在源主机上找到你想要复制的所有文件,然后排除掉不需要的文件,最后使用SCP一次性传输。
以下是一个示例:
```bash
# 在源主机上创建一个新的临时文件夹,只包含要复制的文件
find /path/to/source -type f ! -name "exclude_file1" ! -name "exclude_file2" -exec cp {} /path/to/destination/new \;
# 使用scp将新文件夹的内容复制到目标主机
scp -r /path/to/destination/new user@target_host:/path/to/target/new
```
这里,`find`命令会查找`/path/to/source`路径下的所有普通文件(`-type f`),并且排除名字为`exclude_file1`和`exclude_file2`的文件。`! -name`选项用于排除这些文件。`-exec cp {} /path/to/destination/new \;`执行`cp`命令将符合条件的文件复制到新的本地文件夹。最后,`scp -r`命令递归地将`new`文件夹及其内容安全地复制到目标主机。
相关问题
mobaxterm左侧文件夹
### 配置 MobaXterm 显示和管理左侧文件夹
#### 设置本地浏览器视窗
为了更好地管理和显示左侧文件夹,在MobaXterm中可以利用其内置的会话功能中的SFTP或SCP工具来实现这一目标。当遇到无法通过拖拽操作传输文件的情况时,可能是因为应用程序被设置为以管理员权限运行所致[^1]。
对于希望正常浏览并管理左侧文件夹的需求而言,确保MobaXterm不是以管理员模式启动是非常重要的。如果确实是以此方式打开程序,则建议关闭该应用,并重新按照常规用户身份启动它,这样应该能够恢复正常的文件交互能力。
另外,要查看和管理位于界面左边栏内的文件夹结构,可以通过点击顶部菜单栏里的`Session`选项卡下的`New local terminal`创建一个新的本地终端实例;或者直接在主界面上方找到相应的导航窗口来进行访问[^2]。
在此基础上,还可以进一步调整布局以便更高效地工作:
- **启用侧边栏**:前往`Settings -> Configuration -> General`,勾选`Show the session tree in a docked sidebar`使能固定式的会话树形展示。
- **自定义快捷键**:同样是在上述路径下,探索更多关于键盘映射的可能性,比如分配特定组合键用于快速切换至指定目录等。
最后值得注意的是,虽然默认情况下不需要特别配置就能良好运作,但如果遇到了任何异常状况(例如不能顺利展开某些子级节点),不妨尝试更新软件版本或是查阅官方文档获取最新指导说明。
```bash
# 创建新的本地终端实例命令示例
new_local_terminal
```
本地文件上传到ssh
### 使用SSH协议从本地上传文件到远程服务器的方法
#### 方法一:使用 `scp` 命令行工具
对于简单的文件或目录传输需求,可以直接使用命令行中的 `scp` 工具来完成操作。该方法适用于熟悉命令行环境的用户。
例如要将名为 `local_file.txt` 的单个文件发送给位于 IP 地址为 `192.168.0.1` 的主机上的 `/home/user/destination_folder/` 路径下,则可以在终端输入如下指令:
```bash
scp /path/to/local_file.txt user@192.168.0.1:/home/user/destination_folder/
```
如果是要传送整个文件夹及其子项至目标位置的话,则需加上 `-r` 参数表示递归复制模式[^1]。
#### 方法二:借助 VSCode 和 SFTP 插件进行图形化管理
另一种更为直观的方式就是采用集成开发环境中自带的功能插件来进行这项工作。以 Visual Studio Code 编辑器为例,在安装并配置好了相应的扩展之后——比如 Remote - SSH 或者 SFTP ——便可以通过可视化界面轻松地选取待迁移的数据对象,并执行上载动作[^2]。
具体来说就是在左侧资源管理面板里找到对应的项目节点,选中计划转移出去的那个条目;接着鼠标右键菜单里面应该会有像 "Upload to..." 这样的选项可供选择,按照提示一步步走下去即可达成目的。
#### 方法三:编程方式自动化处理大批量任务
当面对更复杂场景时,还可以考虑编写脚本来批量处理多个文件甚至构建一套完整的解决方案框架出来。这里给出一段基于 Java 语言编写的简单示例程序片段用于说明如何调用 JSch 库函数实现这一功能[^3]:
```java
import com.jcraft.jsch.*;
public class FileUploader {
public static void main(String[] args){
String host="hostname";
int port=22;
String username ="username";
String password="password";
Session session=null;
ChannelSftp channelSftp=null;
try{
JSch jsch=new JSch();
session =jsch.getSession(username,host,port);
session.setPassword(password);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channelSftp=(ChannelSftp)session.openChannel("sftp");
channelSftp.connect();
// Upload a file from the local system to remote server.
channelSftp.put("/path/to/source/file","/path/on/server");
}catch(Exception e){
System.out.println(e.getMessage());
}
finally{
if(channelSftp!=null && !channelSftp.isClosed()){
channelSftp.disconnect();
}
if(session != null && session.isConnected()){
session.disconnect();
}
}
}
}
```
阅读全文
相关推荐
















