파일을 읽을 때 문자열을 반환하는 명령을 실행합니다.

파일을 읽을 때 문자열을 반환하는 명령을 실행합니다.

나는 이런 생각을 가지고 있습니다. 어쩌면 실현 가능하지 않을 수도 있지만 물어볼 가치가 있다고 생각합니다.

사용자가 다음 명령을 실행하고 있다고 가정합니다.

cat ~/file.txt

무언가가 이 파일을 읽으려고 할 때마다 백그라운드에서 스크립트나 명령을 실행하고 해당 스크립트의 응답을 콘텐츠로 반환하고 싶습니다.

어떻게 든 이렇게하는 것이 좋습니다 :

ln -s /folder /symlink

하지만 스크립트의 경우(내 생각):

symlinkcommand /filepath/file.txt "command to run"

내가 분명히 밝혔기를 바랍니다. 귀하의 생각이나 제안 사항이 있으면 회신해 주시기 바랍니다.

감사해요.

답변1

당신이 찾고 있는 것은 가능하지만 당신이 상상하는 것과 정확히 일치하지 않을 수도 있습니다. 내가 가장 자주 보는 접근 방식(실제로 매우 드문 경우임)은 다음을 사용하여 읽는 파이프(FIFO라고도 함) 특수 파일이라는 파일을 만드는 것입니다 mknod.

mknod file.txt p

그런 다음 별도의 셸에서 "파일 내용"을 생성하는 데 사용하려는 스크립트를 시작하고 완료되면 해당 특수 파일을 여러 번 읽을 수 있도록 자동으로 다시 시작해야 합니다. 스크립트의 STDOUT은 명명된 파이프로 리디렉션되고 다른 프로세스(원래 사용자의 프로세스)가 어떻게든 파이프 읽기를 시작할 때까지 스크립트는 일시 중지됩니다. 스크립트가 끝나면 "EOF" 신호가 사용자 프로세스에 전파되어 모든 것이 정상적으로 표시됩니다.

답변2

가장 쉬운 방법은 다음을 사용하는 것입니다.배쉬 별칭, 예를 들어
사용자 명령 입력에 대해 이야기하는 경우입니다.

또 다른 접근 방식은 사용자 공간의 파일 시스템입니다.퓨즈

융합 기본 파일 시스템의 Python 구현 -https://www.stavros.io/posts/python-fuse-filesystem/

불행하게도 퓨즈 파일 시스템 목록이 손상되었습니다(FUSE sourceforge에서 이동했지만 목록이 없음). 이미 완료되었을 수도 있습니다.

관련 정보