Ubuntu Bash脚本:scp等待密码输入及复制后进入目录方法
脚本修改方案
以下是满足你需求的修改后脚本,同时标注关键调整点:
修改后的完整脚本
#!/bin/bash echo "Moving Production Folder Over" # 删除/home/user2下的Production目录 sudo rm -rf /home/user2/Production # 创建目标目录(scp不会自动生成不存在的目录) mkdir -p /home/user2/Production # 从远程主机复制文件到目标目录,scp默认会交互式等待密码输入 scp host@192.168.123.456:/home/user1/Documents/Production/file1 /home/user2/Production/ # 复制完成后自动进入Production目录 cd /home/user2/Production echo "已进入Production目录"
关键调整说明
- 修正删除路径:原脚本删除的是当前用户家目录下的
Production,改为明确指定/home/user2/Production,避免误删;添加-rf参数强制删除目录及内部所有内容,避免因权限或文件只读导致删除失败。 - 新增目录创建:scp无法自动创建不存在的目标目录,所以用
mkdir -p确保/home/user2/Production存在,-p参数会自动创建缺失的父目录,且目录已存在时不会报错。 - scp路径优化:目标目录末尾添加
/,确保远程的file1被复制到Production目录内部,而非将file1重命名为Production。 - 添加自动进入目录:复制完成后执行
cd命令直接进入目标目录,同时增加提示信息确认操作完成。
额外提示
- 如果你是
user2用户,且对/home/user2/Production拥有读写权限,可以删除sudo,避免输入不必要的管理员密码。 - 确保远程主机
192.168.123.456网络可达,且host用户有权限读取/home/user1/Documents/Production/file1。
内容的提问来源于stack exchange,提问作者stopbanningmelmao123
相关产品推荐
相关产品推荐

