sed를 중단하면 대상 파일이 손상되나요?

sed를 중단하면 대상 파일이 손상되나요?

만약 내가방해하다 sed(스트림에디터) 혹시 기회가 있나요?부패대상 파일?

: 명령을 실행 sed -i -- 's/foo/bar/g' file.txt하고 완료되기 전에 종료하면 문자열이 foo대상 파일이 아닌 다른 텍스트로 바뀌 bar거나 대상 파일이 손상될 가능성이 있습니까?

내가 뭘 할까?예상되는예, 파일 처리기 전에 죽이면플러시, 파일에 완료되지 않은 대체 항목이 있을 수 있습니다. 하지만, 나는 sed그런 느낌이 든다강한이러한 이벤트의 경우 수정하기 전에 일종의 중간 파일을 사용하여표적. 그러나 설명서에서 자세한 내용을 찾을 수 없습니다.

답변1

sed 매뉴얼에서 ...

https://www.gnu.org/software/sed/manual/sed.html

파일 끝에 도달하면 임시 파일의 이름이 출력 파일의 원래 이름으로 변경됩니다.

-i[SUFFIX]
--in-place[=SUFFIX]
This option specifies that files are to be edited in-place. GNU sed does this by creating a temporary file and sending output to this file rather than to the standard output.1.
This option implies -s.

When the end of the file is reached, the temporary file is renamed to the output file's original name. The extension, if supplied, is used to modify the name of the old file before renaming the temporary file, thereby making a backup copy2).

This rule is followed: if the extension doesn't contain a *, then it is appended to the end of the current filename as a suffix; if the extension does contain one or more * characters, then each asterisk is replaced with the current filename. This allows you to add a prefix to the backup file, instead of (or in addition to) a suffix, or even to place backup copies of the original files into another directory (provided the directory already exists).

If no extension is supplied, the original file is overwritten without making a backup. 

관련 정보