首页 > 编程知识 正文

cp复制无法获取文件状态,linux软连接原文件

时间:2023-05-05 22:26:57 阅读:52363 作者:4749

虽然我们知道在学习cp命令时,在复制软链接时,我们会保留链接文件并使用-d,但在实际操作中,通常会出现以下情况

情况

[根@ loot~~ ] # ls-l/etc/red hat-release #此文件是链接文件lrwxrwxrwx.1根根根14o CT 1708:48/etc/red hat-release

[ root @ localhost~] # CP-d/etc/red hat-release/root/red hat.s #使用-d保存链接文件的属性

如果检查[ root @ localhost~] # ls-l/root/red hat.s #,就会发现centos-release正在闪烁,即不存在

lwxrwxrwx1root root 14o CT 2209:06/root/red hat.s-centos-release

[ root @ localhost~] # cat/root/red hat.s #看不到的/root/redhat.s链接文件cat :/root/red hat.s : nosuchfileled

为什么使用cp -d复制链接文件会失败? 那取决于cp -d是如何复制软链接的。 在上例中,我们

/etc/redhat-release软链接将复制到/root/redhat.s。 使用cp -d时,原始软链接的指针区域实际上表示原始文件

路径字符串将复制到新创建的/root/redhat.s中。 以下命令显示所有文件大小为14,即centos-release

字符串大小

[ root @ localhost~] # ls-l/etc/red hat-release/root/red hat.s

lrwxrwxrwx.1根根根14o CT 1708:48/etc/red hat-release-centos-release lrwxrwxrwx

1根路由14o CT 2209:06 /根路由/红帽. s-centos-release

如果查看新的软链接/root/redhat.s,则会发现原始文件路径为centos-release,并将其移动到当前路径(/root/)

在中显示centos-release文件,但实际上原始文件位于/etc/目录中,因此显示/root/redhat.s

/root/red hat.s : nosuchfileordirectory错误。

根据这一原理,可以推断,如果原始链接文件包含原始文件的绝对路径,则新创建的链接文件可以找到原始文件,而不是错误。 接下来做个实验吧。

#1.如果创建了软链接/etc/redhat-release2,则可以看到数据区包含原始文件的绝对路径/etc/centos-release

[ root @ localhost~] # ln-s/etc/centos-release/etc/red hat-release 2

[ root @ localhost~~ ] # ls-l/etc/red hat-release2lrwxrwxrwx1root root 19 oct 2209:37/etc/red hat-release2-/eted

#2.刚创建的软链接/etc/redhat-release2到/root/radhat2.s的副本

[ root @ localhost~] # CP-d/etc/red hat-release2/root/rad hat2. s

[ root @ localhost~] # ls-l/root/rad hat2. slrwxrwxrwx1root root 19 oct 2209336041/root/rad hat2. s-/etc/centos

#3.查看新软链接的内容

([根@ localhost~] # cat/root/rad hat2. s centos release 6.7 (final ) ) ) ) ) 65 )

cp -d复制软链接时的总结

1 .如果原始链接文件包含原始文件的绝对路径:创建的新链接文件可以在任何路径中创建。

2 .如果原始链接文件包含原始文件的相对路径:

示例1 :

新的链接文件位于/root/link2中

相对路径是centos (来自原始链接文件的指针数据区域) )。

/root/centos是原始文件路径

示例2 :

新链接文件为/root/test/link2

相对路径为./centos

/root/centos是原始文件路径

如果找到原始文件路径,则确定;如果找不到,则报告错误。

原创文章,作者:李璐,转载请注明来源: http://www.178linux.com/53450

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。