网页访问服务器,只有粘贴板可用

你的场景是:

  • 服务器只能通过网页版远程访问(类似 Web IDE / 浏览器终端 / 云桌面)
  • 文件传输功能不可用
  • 但是剪贴板可以互通
  • 想把整个项目源码拷贝到本地

这种情况下,核心思路是:把项目文件转换成一个可复制的纯文本流,然后通过剪贴板带出来

下面给几个方案,从简单到稳妥。


方案1:tar 打包 + base64 + 剪贴板(推荐)

这是最通用的方法。

服务器端

进入项目目录:

bash 复制代码
cd your_project

打包:

bash 复制代码
tar czf project.tar.gz .

转换成文本:

bash 复制代码
base64 project.tar.gz > project.tar.gz.b64

查看大小:

bash 复制代码
ls -lh project.tar.gz.b64

然后:

bash 复制代码
cat project.tar.gz.b64

复制全部输出。


本地

保存:

bash 复制代码
vim project.tar.gz.b64

粘贴进去。

然后:

bash 复制代码
base64 -d project.tar.gz.b64 > project.tar.gz

解压:

bash 复制代码
mkdir project
tar xzf project.tar.gz -C project

恢复完整项目。


注意

如果项目很大,比如:

  • 100MB
  • 500MB

浏览器剪贴板可能撑不住。

可以切片:

服务器:

bash 复制代码
split -b 5M project.tar.gz.b64 part_

得到:

复制代码
part_aa
part_ab
part_ac
...

逐个复制。

本地:

bash 复制代码
cat part_* > project.tar.gz.b64

再:

bash 复制代码
base64 -d project.tar.gz.b64 > project.tar.gz

方案2:直接导出 git patch(代码项目最推荐)

如果项目是 git:

服务器:

bash 复制代码
git status

确认。

然后:

bash 复制代码
git bundle create project.bundle --all

转文本:

bash 复制代码
base64 project.bundle > project.bundle.b64

复制。

本地:

bash 复制代码
base64 -d project.bundle.b64 > project.bundle

恢复:

bash 复制代码
git clone project.bundle myproject

优点:

  • 保留 git 历史
  • 分支
  • commit
  • 文件权限

比 tar 更适合代码。


方案3:只复制源码(排除编译文件)

如果项目很大,可以:

bash 复制代码
tar czf source.tar.gz \
--exclude=build \
--exclude=.git \
--exclude='*.o' \
--exclude='*.so' \
.

然后 base64。


方案4:网页终端支持下载的话

很多 Web SSH(比如:

  • Jupyter Terminal
  • VSCode Server
  • Open OnDemand
  • 阿里云云助手
  • 华为云 CloudShell

其实有隐藏下载接口。

可以尝试:

bash 复制代码
python3 -m http.server 8000

然后浏览器访问:

复制代码
http://server-ip:8000/project.tar.gz

如果网络策略允许,会比剪贴板快很多。


方案5:利用剪贴板传输小文件(最简单)

如果项目只有几十 KB:

服务器:

bash 复制代码
find . -type f | xargs cat

不推荐。

因为:

  • 文件名丢失
  • 目录结构丢失
  • 二进制损坏

如果有 git:

优先:

复制代码
git bundle
↓
base64
↓
剪贴板

如果没有 git:

复制代码
tar.gz
↓
split 5MB
↓
base64
↓
剪贴板

这是最可靠的。


另外,如果服务器网页终端支持鼠标复制,不要直接 cat 大文件,浏览器通常会卡死。建议:

bash 复制代码
base64 project.tar.gz | split -b 2M - chunk_

然后:

bash 复制代码
cat chunk_aa
cat chunk_ab
...

一块一块复制。

相关推荐
程序员-Benothing14 分钟前
Linux查找文件命令:find、locate、which、whereis实战
linux·运维·服务器
团子股股东峥哥23 分钟前
day39-RHEL-访问网络附加存储
linux·运维·服务器
名字还没想好☜42 分钟前
Kubernetes 用 kubectl port-forward 和 proxy 调试集群内服务:两者区别、断连自动重连与为什么别用在生产
运维·docker·kubernetes
程序员-Benothing2 小时前
Linux文件查看与编辑:cat、less、tail、vim快速入门
linux·运维·服务器
考虑考虑8 小时前
docker compose V2版本新属性
运维·后端·自动化运维
小小的木头人10 小时前
Ubuntu Samba修改端口绕过445封禁挂载
运维·ubuntu
wdfk_prog11 小时前
ROS教程:01 搭建 ROS1 Noetic Docker 开发环境
运维·缓存·docker·容器·ros
SEO_juper11 小时前
Java 并发编程实战:从线程基础到高并发架构
运维·人工智能·爬虫·chatgpt·seo
szephyr12 小时前
Docker + Compose 实战:把本地项目一键搬到云服务器,附完整配置
运维·docker·容器·部署·云服务器
wdfk_prog12 小时前
ros教程02:创建 catkin Workspace、Package 与第一个 ROS1 C++ Node
运维·缓存·docker·容器·ros