명령의 표준 입력으로 리디렉션하는 동안 파일을 변경합니다.

명령의 표준 입력으로 리디렉션하는 동안 파일을 변경합니다.

Bash에서 실행하는 동안 내용을 mycommand < myfile수정했습니다 .myfile

myfile어떤 콘텐츠를 얻나요 mycommand? mycommand실행을 시작했을 때 원본 콘텐츠를 얻 나요 , 아니면 myfile수정하면서 수정된 내용을 얻나요?myfile

답변1

mycommand무엇을 해야할지 에 따라 다릅니다 . 10분 동안 절전 모드로 전환된 후 표준 입력 읽기를 시작하면 수정 사항이 표시됩니다(이미 완료된 경우). 처음에 파일의 일부를 읽고 해당 파일을 수정한 다음 두 번째로 읽으면 읽은 지점 이후의 변경 사항이 표시됩니다.

또한 많은 프로그램이 버퍼링을 사용하기 때문에 명령이 한 줄만 읽는다고 생각하면 실제로는 더 많이 읽을 수도 있습니다("버퍼 가득 참", 일반적으로 8192바이트).

그러나 편집 프로그램은 파일을 삭제하고 변경 사항이 포함된 새 파일을 다시 만드는 경우가 많습니다. 이 경우 프로그램은 이전에 삭제된 파일 내용을 계속 사용하며 변경 사항이 표시되지 않습니다. 이는 파일을 열 때 파일 이름이 해당 고유 "inode"로 변환되어 더 이상 파일 이름이 필요하지 않기 때문입니다. 누군가가 파일을 삭제하더라도 해당 파일을 여는 프로그램이 있는 한 inode는 계속 존재합니다. 동일한 파일 이름으로 새 파일이 생성되면 다른 고유 inode가 부여됩니다.

관련 정보