linux链接文件怎么复制出来,如何将符号链接文件从Linux复制到Windows,然后再复制到Linux,但仍将其保留为符号链接...

在* nix中,符号链接通常只是具有“symlink”属性的纯文本文件.该文件包含链接目标的路径. Windows上不存在“symlink”属性.因此,当您在Windows上提取符号链接时,它将成为常规文本文件[虽然它也可能出错,但它可能取决于您用来提取存档的工具].复制回* nix时,它将保留常规文本文件.

唯一的解决方案是在某些外部元数据存储中保留“symlink”属性,并在上载文件或创建存档时恢复该属性.

虽然我不知道任何支持这个的工具.

你绝对可以编码.

>使用WinSCP:您生成一个生成WinSCP script的代码.代码将递归迭代本地目录结构.对于文件,它将生成put命令以上载它.对于符号链接,它将生成ln命令以创建符号链接.为了区分符号链接,您可以使用一个简单的启发式方法(符号链接=带有斜杠的简短单行文本文件).一种正确的方法是在提取存档时记住文件符号链接属性(但是你也必须自己编写提取代码,请参阅下面的提示).

>使用存档:

我最近为ZIP存档实现了这个. (即使在Windows上)您可以使用PHP方法ZipArchive::setExternalAttributes将存档文件标记为符号链接.请注意,该功能仅适用于PHP 5.6.

示例代码:

$symlink = true; // is symlink?

$dir = false; // is folder?

$mode = "755"; // permissions

$local_path = "C:\\zip\\folder\\mylink";

$zip_path = "folder/mylink";

$attr =

(1 << 14) | // this bit seems to be always set

(1 << ($dir ? 30 : 31)) |

($symlink ? (1 << 29) : 0) |

octdec($mode) << 16;

$zip->addFile($local_path, $zip_path);

$zip->setExternalAttributesName($zip_path, ZipArchive::OPSYS_UNIX, $attr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值