어떻게 이런 일이 발생했는지는 잘 모르겠지만 자체적으로 심볼릭 링크가 된 파일이 많이 있습니다. 파일을 복구할 수 있는 방법은 없는 것 같지만, 있기를 바랍니다. 이것이 ls -l이 말하는 것입니다
lrwxrwxrwx 1 bob users 50 Sep 9 21:45 background.png -> /path/to/background.png
파일 중 하나를 연결 해제하려고 시도했지만 안타깝게도 파일이 사라졌습니다. 나는 또한 readlink를 시도했다. Readlink에 따르면 파일 경로는 /path/to/Background.png입니다.
내가 말했듯이, 나는 이것이 어떻게 일어 났는지 정말로 모릅니다. 이 모든 파일은 이전 관리자로부터 물려받았습니다. 해결 방법이 무엇입니까?
답변1
파일인 경우예자신에 대한 심볼릭 링크가 존재하지 않으며 데이터가 존재하지 않으며 이에 액세스하려고 시도하면 루프가 발생하고 결국 오류가 발생합니다.
예를 들어
$ ls -l myfile
lrwxrwxrwx 1 sweh sweh 19 Sep 9 22:38 myfile -> /path/to/here/myfile
$ cat myfile
cat: myfile: Too many levels of symbolic links
데이터가 없기 때문에 이러한 심볼릭 링크를 삭제해도 데이터가 손실되지 않습니다.예저장할 데이터가 없습니다.
Too many levels of symbolic links
파일을 시도할 때 오류가 발생하지 않으면 cat
파일은 다음과 같습니다.아니요자체에 대한 링크입니다.
답변2
ln
~ 할 것이다안 돼요파일 자체에 대한 링크로 파일을 덮어씁니다. 다음을 통해 파일 자체에 링크된 파일을 얻을 수 있습니다.
$ ln -s `pwd`/myfile myfile
$ ls -l myfile
lrwxrwxrwx 1 grochmal users 25 Sep 10 03:41 myfile -> /home/grochmal/tmp/myfile
그러나 데이터가 포함된 파일을 사용하려고 하면 다음과 같습니다.
$ rm -f myfile
$ echo yay > myfile
$ ln -sf `pwd`/myfile myfile
ln: '/home/grochmal/tmp/myfile' and 'myfile' are the same file
ln
반면에 한 파일은 다른 파일에 대한 링크로 덮어쓰여집니다.
그러나 자신을 가리키는 링크가 데이터가 전혀 없는 파일(또는 소프트 링크가 생성되기 전에 명시적으로 삭제된 파일)이라는 점은 상당히 확신할 수 있습니다.
(Linux에서는 ln
from 을 사용합니다 coreutils
. 즉)