У меня есть куча файлов в одном каталоге и ссылки на каждый из этих файлов в другом каталоге. Так что 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.