Unix 上でリンクされたファイルを移動するにはどうすればよいですか?

Unix 上でリンクされたファイルを移動するにはどうすればよいですか?

1 つのディレクトリに多数のファイルがあり、別のディレクトリにある各ファイルへのリンクがあります。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 サイトに投稿されました。

関連情報