如何在 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 網站。

相關內容