首页 / 新闻动态 / 详情
Finalshell · 产品动态与运维实践

围绕 SSH 远程连接、服务器文件传输与主机批量管理的真实场景,持续输出可落地的方法与产品更新说明,帮助团队把每一次运维操作做得更稳、更快。

Finalshell如何上传整个文件夹:五个常见坑与绕行法

很多人第一次用 FinalShell 传项目目录,习惯把本地文件夹直接拖进右侧文件面板,看到进度条走完就以为大功告成。真到服务器上执行才发现:目录在、文件不全,或者子目录是空的。问题往往不在工具本身,而在操作路径和预期不一致。下面按上传前、上传中、上传后,把常见坑拆开说。

坑一:拖拽只传了第一层,子目录被漏掉

FinalShell 的文件管理基于 SFTP。拖拽文件夹时,如果目标面板还停留在上一级目录,或拖拽过程中松手位置偏移,容易只创建目录、不递归上传内容。更稳妥的做法是:

  • 先在右侧面板双击进入目标目录,确认路径栏显示的是最终位置;
  • 再用“上传”按钮选择文件夹,而不是只靠拖拽;
  • 上传时盯一眼传输队列,确认文件数量与本地一致,别急着关窗口。

如果目录层级很深,建议先本地压缩再上传,减少逐个文件握手带来的中断概率。

坑二:中文名、空格和长路径导致中途报错

Windows 下常见的“新建文件夹 (2)”“项目资料 最终版”这类名称,在跨平台传输时可能触发编码或截断问题。表现是传到一半停住、个别文件 0 字节,或者服务器上出现乱码目录。

  • 上传前把目录名改成英文、数字、下划线组合;
  • 去掉名字里的空格、括号、#、& 等符号;
  • 路径总长度尽量控制在 200 字符以内;
  • 遇到报错不要反复重试同一个目录,先清掉服务器上的半成品再传。

坑三:隐藏文件和符号链接“看起来传了,其实没传”

以点开头的配置文件、.git 目录、软链接,在文件面板里有时不显示或显示为普通文件。传完发现程序起不来,多半是漏了 .env、.config 这类文件。

  • 上传前在本地确认隐藏文件清单;
  • 不要依赖面板的“全选”,先显示隐藏项再核对;
  • 符号链接建议在服务器端重建,不要指望跨平台原样保留;
  • 项目目录优先打包成 tar.gz,压缩包内不会漏隐藏文件。

坑四:权限和属主不对,传上去也读不了

用普通账号登录,上传到 /var/www、/opt 这类目录时,文件属主是登录用户,Web 服务或运行账号可能没有读权限。常见现象是 403、Permission denied。

  • 先传到用户家目录或 /tmp,再通过 sudo mv 移到目标位置;
  • 解压后用 chown -R 应用账号:应用组 目标目录 修正属主;
  • 目录给 755、文件给 644,不要图省事直接 777;
  • 上传前用 df -h 和 df -i 看一眼磁盘空间与 inode,别等传到 99% 才失败。

坑五:大目录硬传,慢且容易断

几万个小文件逐个走 SFTP,速度慢、易断,断点续传也不一定可靠。更稳的顺序是:

  • 本地打包:tar -czf project.tar.gz project;
  • 上传压缩包,比传整个目录快得多;
  • 在服务器上校验:sha256sum project.tar.gz,与本地对比;
  • 解压:tar -xzf project.tar.gz -C /目标路径;
  • 需要覆盖时先备份旧目录,别直接解压盖上去。

命令行兜底:scp 和 rsync 什么时候更合适

如果 FinalShell 面板反复中断,可以打开它自带的终端,用命令行完成同样的事。scp -r 适合一次性小目录;rsync -avz --progress 适合大目录和增量同步,断线后重跑只补差异。注意 rsync 末尾斜杠的含义:源路径带斜杠是“传目录里的内容”,不带斜杠是“连目录本身一起传”,这一点最容易传错层级。

上传后的三步自检

  • 数量核对:本地 find . -type f | wc -l,服务器同命令对比;
  • 关键文件抽查:配置文件、入口脚本、静态资源各抽一个打开;
  • 权限与属主检查:ls -l 看属主,确认运行账号能读能执行。

把这几步固定成习惯,比事后排查“为什么页面 404”省事得多。

继续了解 Finalshell

让每一台服务器都处在清晰的掌控之中

注册 Finalshell 账号,即可把会话配置、主机分组与常用命令同步到不同设备,随时随地延续熟悉的运维体验。