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