답변:
링크를 만들 수 없지만 다시 가져올 수 있습니다. 실험을 해보자 :
$ echo blurfl >myfile.txt
$ tail -f myfile.txt &
$ rm myfile.txt
myfile.txt가 사라졌지 만, inode는 tail 명령으로 유지됩니다. 파일을 다시 가져 오려면 먼저 inode를 유지하는 프로세스의 PID를 찾으십시오.
$ ps auxw | grep tail
sunny 409 0.0 0.0 8532 824 pts/5 S 18:07 0:00 tail -f myfile.txt
PID는 409입니다. chdir to / proc / 409 / fd / 및 내용을 나열하십시오.
dr-x------ 2 sunny sunny 0 2009-07-24 18:07:18 .
dr-xr-xr-x 7 sunny sunny 0 2009-07-24 18:07:17 ..
lrwx------ 1 sunny sunny 64 2009-07-24 18:07:33 0 -> /dev/pts/5
lrwx------ 1 sunny sunny 64 2009-07-24 18:07:33 1 -> /dev/pts/5
lrwx------ 1 sunny sunny 64 2009-07-24 18:07:18 2 -> /dev/pts/5
lr-x------ 1 sunny sunny 64 2009-07-24 18:07:33 3 -> /home/sunny/tmp/myfile.txt (deleted)
/ proc / [PID] / fd / 디렉토리에는 프로세스가 사용하는 모든 파일의 파일 디스크립터에 대한 심볼릭 링크가 있습니다. 이 경우 심볼릭 링크 "3"은 삭제 된 파일을 가리 킵니다. 따라서 파일을 복원하려면 내용을 새 파일로 복사하십시오.
$ cat 3 >/home/mydir/saved_file.txt
여전히 시도하려고 작성된 경우 전체 파일을 가져옵니다. tail -c +1 -f
에서 : /unix/25527/how-to-follow-a-la-tail-fa-binary-file-from-the-beginning
(btw : / proc의 fd에서 ln이 작동하지 않습니다. 방금 시도했습니다)