생성된 프로그램에 대한 읽기/쓰기 장치를 어떻게 설정합니까?

생성된 프로그램에 대한 읽기/쓰기 장치를 어떻게 설정합니까?

이것이 가능한지는 모르겠지만, 이 개념을 어떻게 연구해야 할지 모르겠습니다. 가능할까요, 그렇다면 어떻게 해야 할까요?

/dev/remoteclip쓰거나 읽을 때 프로그램이나 쉘 스크립트를 생성하는 장치 파일(예: )을 만드시겠습니까 ?

사용 사례는 원격 클립보드에 텍스트를 공유하는 것입니다. 예를 들어, 내 Linux 상자 옆에 Mac이 있습니다. 현재 상태로는 다음과 같이 콘텐츠를 공유할 수 있습니다.

$ ssh macbox "pbcopy" < myFile
$ ssh macbox "pbpaste" > myFile

Linux 파일 시스템에 쓸 때 ssh 명령을 실행하는 장치나 FIFO를 가질 수 있는지 궁금합니다.

$ cat myFile >> /dev/macbook-clipboard
$ cat /dev/macbook-clipboard > myFile

이런 방식으로 편집자와 기타 프로그램은 간단히 장치/FIFO에 쓸 수 있습니다.

이것은 이것이 가능한지, 어떻게 가능한지에 대한 학습 연습에 가깝습니다. 이는 필수 사항이 아니며 장점은 순전히 학문적일 수 있으며 일반적인 작업 흐름에 유용할 수 있습니다.

답변1

나는 이것을 달성하는 방법을 찾았습니다. FIFO에서 데이터를 지속적으로 읽으려면 백그라운드 프로세스를 생성해야 합니다. 예를 들어:

$ mkfifo hopper
$ while :; do ssh macbox "pbcopy"; done < hopper &
$ cat myFile >> hopper

(감사해요이 답변)

이제 나는 이것을 완전히 이해하지 못하지만 < hopperwhile 루프가 루프를 차단하고 있다고 추측할 의향이 있습니다. 이것이 바로 CPU가 계란을 튀기지 않고 데이터가 없을 때 유휴 상태로 앉아 있는 흩어져 있는 SSH 세션이 없는 이유입니다. FIFO로 파이프됩니다.

나는 이 모든 *Unix 도구가 얼마나 세심하고 미래 지향적인지 보고 깊은 인상을 받았습니다. 저는 솔직히 왜 학교에서 이것을 가르치는지, 현대 소프트웨어 개발이 왜 이러한 고대 바퀴를 재창조하는 것인지 이해하지 못합니다. 놀라운!


위의 과정을 종료합니다 kill %1.

관련 정보