如何在 Unix 上移动链接文件?

r3m*_*bol 6 unix symbolic-link

我在一个目录中有一堆文件,并链接到另一个目录中的每个文件。所以ls -l看起来像这样:

lrwxrwxrwx 1 rembol rembol   89 Jan 25 10:00 copyright.txt -> /home/rembol/solr/target/deploy/data/core/copyright.txt
lrwxrwxrwx 1 rembol rembol   92 Jan 25 10:00 jar-versions.xml -> /home/rembol/solr/target/deploy/data/core/jar-versions.xml
lrwxrwxrwx 1 rembol rembol   85 Jan 25 10:00 lgpl.html -> /home/rembol/solr/target/deploy/data/core/lgpl.html
lrwxrwxrwx 1 rembol rembol   79 Jan 25 10:00 lib -> /home/rembol/solr/target/deploy/data/core/lib
lrwxrwxrwx 1 rembol rembol   87 Jan 25 10:00 readme.html -> /home/rembol/solr/target/deploy/data/core/readme.html
drwxr-xr-x 3 rembol rembol 4096 Jan 25 10:00 server
drwxr-xr-x 2 rembol rembol 4096 Jan 25 10:00 startup
Run Code Online (Sandbox Code Playgroud)

现在我想这些链接的文件从移动/home/rembol/solr/target/deploy/home/rembol/output/。如果我这样做,我只是简单地调用mv,链接就会中断。我不想单独重新链接每个文件,因为有数百个文件(它们是自动生成的)。

是否有一些聪明的方法来移动链接的文件,而不是编写一个脚本来为每个子目录中的每个文件递归地取消链接、移动和重新链接?

小智 4

简短的版本是mv不能这样做。您需要自行重新定位链接。我本想就如何做到这一点提供一个建议,但是Unix/Linux 站点上发布的类似问题已经有了一个非常好的答案。