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

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

我在一个目录中有一堆文件,并在另一个目录中链接到每个文件。因此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

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

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

答案1

简而言之,你mv无法做到这一点。你需要自己重新定位链接。我本来想就如何做到这一点提出建议,但已经有一个非常好的答案类似问题发布在Unix/Linux网站上。

相关内容