저는 한동안 Linux를 사용해 왔는데 오늘 흥미로운 것을 발견했습니다.
문자열을 파일에 지속적으로 쓰는 무한한 작업이 있다고 가정해 보겠습니다.
어느 시점에서 파일을 삭제했는데 몇 초 안에 다시 생성되었습니다. 놀랍게도 나는 밧줄을 하나도 잃지 않았습니다.
bash 스크립트를 사용하여 테스트한 방법은 다음과 같습니다.
#!/bin/bash
i=0
while :
do
echo ${i}>>./target
sleep 1
i=$((i+1))
done
이 스크립트를 4초 동안 실행하면 , 및 가 포함된 파일 이름 을 얻을 수 target
있습니다 0
. 그런 다음 파일을 삭제합니다 . 5초 안에 새 파일을 생성합니다 . 놀랍게도 새 파일에서 , , , , 의 내용을 즉시 얻었 습니다 .1
2
3
target
touch target
4
5
6
7
8
그러면 파일이 삭제되었을 때 생성된 모든 문자열을 왜 다시 가져올 수 있습니까?
답변1
touch target
이 경우 파일이 생성되지 않기 때문입니다 . 쉘 >>
연산자는 지정된 파일에 추가하고 필요한 경우 파일을 생성합니다. "3" 이후의 파일을 삭제한 후 echo 4>>./target
생성합니다.
파일을 삭제한 후 파일을 나열해 보세요.
rm target; sleep 1; ls -l target
재현된 것을 볼 수 있습니다.