最近打包遇到了一个问题,打包完MAC的sdk包后,得到的是一个framework的文件夹,我们需要将这个framework传到ftp服务器上,另外,还要把这个文件夹下的Release文件夹里的文件替换掉源码Demo里的文件,也就是是ftp上要有framework文件夹和demo文件夹。这个framework文件夹,我们叫他LBCast_FrameWork,目录结构如下:

替换到Demo文件中的上面图片的“1” “2” 这两个文件夹,软链接文件正常情况是如下的(带这种小箭头的):

因为我是从mac机器上传包到windows的ftp机器上,所以我先压缩文件,然后再传。

我的步骤是:

(1)将文件夹HPCastResources.bundle 和 HPCastWork.framework 复制到Demo文件对应目录下

命令是: cp  -rn LBCast_FrameWork/Release/* Demo/

(2)将Demo和LBCast_FrameWork 分别压缩成zip文件

命令:zip -r -q Demo.zip  Demo

zip -r -q LBCast_FrameWork.zip   LBCast_FrameWork

(3)用curl命令上传到ftp上:

curl -u ftp用户名:ftp密码 -T "Demo.zip"  ftp://ftp的ip/output/

curl -u ftp用户名:ftp密码 -T "LBCast_FrameWork.zip"  ftp://ftp的ip/output/

但是,当我从ftp上下载刚才传上来的Demo.zip 和LBCast_FrameWork.zip,解压后,软链接没有了!!! 

调试(一定要在mac上调试,windows看不出软链接文件):

    直接在mac压缩成zip,再解压是没问题的,但是执行zip  -r 压缩,然后再用unzip 解压就出问题了,软连接不见了

    想着压缩除了zip还有tar,我用tar试试,tar -cvf LBCast_FrameWork.tar LBCast_FrameWork  再解压,尽然没问题!!!

   好了,都改成tar吧,我还是把Release下的文件复制到Demo里,然后将Demo也压缩成tar包,再传到ftp。

  再下载试试,LBCast_FrameWork.tar解压了,软链接还在,嘻嘻,为自己的机智点个赞!!

  再试试Demo.tar ,解压了,软链接没有了,是不是复制有问题啊,原文件没毛病啊,啊啊,苍天饶过谁啊!!

 好吧,man cp 看看, -R 好像可以,有软链接的描述,改成cp  -R LBCast_FrameWork/Release/* Demo/,mac上看了下,软链接可以了,嘻嘻,不能高兴太早了,再压缩成tar包,传到ftp上,下载Demo.tar 解压看看,软链接还在!!! 我真是棒棒哒!!!!

但是 why ??? 如果你知道,麻烦在评论里分享下~~

修改后的命令如下:

(1)将文件夹HPCastResources.bundle 和 HPCastWork.framework 复制到Demo文件对应目录下

命令是: cp  -R LBCast_FrameWork/Release/* Demo/

(2)将Demo和LBCast_FrameWork 分别压缩成zip文件

命令:tar -cvf Demo.tar  Demo

tar -cfv LBCast_FrameWork.tar   LBCast_FrameWork

(3)用curl命令上传到ftp上:

curl -u ftp用户名:ftp密码 -T "Demo.tar"  ftp://ftp的ip/output/

curl -u ftp用户名:ftp密码 -T "LBCast_FrameWork.tar"  ftp://ftp的ip/output/

MacOS上传文件到windows ftp时链接文件不见了的更多相关文章

  1. 从0在windows上一次性上传本地整个项目(包含所有文件/文件夹)到 Github

    1.注册并登陆Github. 2.登陆进去之后的页面,点击这个“库”,这表示你在Github上上的代码仓库,我这里已经创建过一个了,所以数量是1 3.在仓库选项卡中,点击“新建”按钮添加一个项目. 4 ...

  2. Java实现文件上传到服务器(FTP方式)

    Java实现文件上传到服务器(FTP方式) 1,jar包:commons-net-3.3.jar 2,实现代码: //FTP传输到数据库服务器 private boolean uploadServer ...

  3. 通过JAVA对FTP服务器连接,上传,下载,读取,移动文件等

    记录一次对FTP服务器文件内容 通过Java程序对FTP服务器文件处理:连接,上传,下载,读取,移动文件等. 需求描述:今天接到一个任务,在Java项目中,读取FTP服务器上的一些文件,进行一些业务操 ...

  4. JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)

    package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...

  5. (配置)CKEditor+CKFinder+php上传配置,根据年月命名创建文件夹来存放

    CKEditor+CKFinder+php上传配置 新版本的CKEditor只提供了基本的文本编辑功能,上传模块由另一个组件CKFinder.这里主要记录CKFinder上传的一些参数配置,能够成功上 ...

  6. Angular14 利用Angular2实现文件上传的前端、利用springBoot实现文件上传的后台、跨域问题

    一.angular2实现文件上传前端 Angular2使用ng2-file-upload上传文件,Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng ...

  7. thinkphp项目上传到github,为什么缺少很多文件

    thinkphp项目上传到github,为什么缺少很多文件 问题: 把tp5项目push到码云(类似github)上,为什么没有thinkphp这个核心库? 然后我看了下码云和github上,官方的t ...

  8. PHP 多图上传,图片批量上传插件,webuploader.js,百度文件上传插件

    PHP  多图上传,图片批量上传插件,webuploader.js,百度文件上传插件(案例教程) WebUploader作用:http://fex.baidu.com/webuploader/gett ...

  9. [转]ExtJs入门之filefield:文件上传的配置+结合Ajax完美实现文件上传的asp.net示例

    原文地址:http://www.stepday.com/topic/?459 作文一个ExtJs的入门汉子,学习起来的确是比较费劲的事情,不过如今在这样一个网络资源如此丰富的时代,依然不是那么难了的. ...

随机推荐

  1. 【洛谷P4589】[TJOI2018]智力竞赛(二分+最小链覆盖)

    洛谷 题意: 给出一个\(DAG\),现在要选出\(n+1\)条可相交的链来覆盖,最终使得未被覆盖的点集中,权值最小的点的权值最大. 思路: 显然最终的答案具有单调性,故直接二分答案来判断: 直接将小 ...

  2. RabbitMQ学习笔记(一、消息中间件基础)

    目录: 什么是消息中间件 消息中间件的作用 JMS规范 AMQP协议 RabbitMQ简介 Hello World 什么是消息中间件: 消息中间件(Message Queue Middleware,简 ...

  3. [C2W3] Improving Deep Neural Networks : Hyperparameter tuning, Batch Normalization and Programming Frameworks

    第三周:Hyperparameter tuning, Batch Normalization and Programming Frameworks 调试处理(Tuning process) 目前为止, ...

  4. C++ 模板特化、偏特化测试程序

    #include <iostream> // 偏特化的模板不会自己添加构造函数 ctor 和 析构函数 dtor #if 1 // P1 template <typename T1, ...

  5. 动态设置html的font-size值

    PC端 (function () { function setRootFontSize() { let rem, rootWidth; let rootHtml = document.document ...

  6. [Taro] taro中定义以及使用全局变量

    taro中定义以及使用全局变量 错误的姿势 // app.tsx文件中 class App extends Component { componentDidMount() { this.user = ...

  7. 【转】struts2的ActionInvocation分析(action调度者)

    一个ActionInvocation实例代表一个action的执行状态,持有拦截器和将要执行的action的实例. defaultActionInvocation是其默认实现.下面是定义在该类中的部分 ...

  8. SQLi_Labs通关文档

    SQLi_Labs通关文档 先列举一下sql基础语句 show databases; //查看数据库 use xxx; //使用某个数据库 show tables; //查看该数据库的数据表 desc ...

  9. 解决 ubuntu 开机卡死在输入密码界面 && 键盘鼠标失灵!!

    近期不知安装了什么package,导致 ubuntu 开机后键盘鼠标一直没法用,刚开始以为是 ubuntu 桌面环境崩溃了,后来发现系统能显示连接到网络.时间也在运行,那应该就是键盘鼠标失灵了. 网上 ...

  10. Vue.js 源码分析(二十) 指令篇 v-once指令详解

    数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值,例如:<p>Message: {{ msg }}</p>以后每当msg属性发生了改变,插值处的内 ...