한 디렉토리에 여러 개의 파일이 있고 다른 디렉토리에 있는 각 파일에 대한 링크가 있습니다. 그래서 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 사이트에 게시되었습니다.