首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用coreutils安装符号链接

使用coreutils安装符号链接
EN

Stack Overflow用户
提问于 2016-02-22 18:05:01
回答 2查看 3.2K关注 0票数 13

我构建了一个库,并希望使用coreutils /usr/local/lib将库安装到install。构建的结果如下:

代码语言:javascript
复制
libfoo.so -> libfoo.so.1
libfoo.so.1 -> libfoo.so.1.1
libfoo.so.1.1

我希望保留符号链接,并将文件install/usr/local/lib。但是,如果我跑

代码语言:javascript
复制
install libfoo* /usr/local/lib

解析符号链接,/usr/local/lib如下所示:

代码语言:javascript
复制
libfoo.so
libfoo.so.1
libfoo.so.1.1

换句话说,这些都是真正的文件,没有符号链接。

install的手册不包含任何有关解析符号链接的信息。我如何才能install符号链接?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-02 15:08:44

我也在想这件事。在查看源代码之后,似乎install在安装时非常积极地解析链接。下面是它传递给cp的一些默认值;相关的默认值以后不会被覆盖。

代码语言:javascript
复制
cp_option_init (struct cp_options *x)
{
  cp_options_default (x);
  x->copy_as_regular = true;
  x->reflink_mode = REFLINK_NEVER;
  x->dereference = DEREF_ALWAYS;
  x->hard_link = false;
  x->preserve_links = false;
  x->preserve_mode = false;
  x->symbolic_link = false;
(...)

解决办法是使用cp + chmod

票数 9
EN

Stack Overflow用户

发布于 2020-09-29 03:28:58

请注意,install实用程序总是取消符号链接。

请看我的问题这里

要在保存所有内容(符号链接、硬链接、模式等)的同时复制文件,可以使用cp -a

您还可以使用tar:

tar c -C source_dir file1 ... fileN | tar xv -C dest_dir

请注意,cp -atar都将保留用户和组,并且这些文件可能必须由root:root在目的地拥有。之后你可能需要添加一个chown。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35560730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档