거대한 gzipped 파일이 있으며 프로그램 (이 경우 4s-import)을 읽으십시오. 먼저 파일을 압축 해제 한 다음 파일 경로를 인수로 사용하여 프로그램을 호출하는 데 많은 시간이 걸립니다. 다음과 같은 것을 할 수 있습니까?
zcat huge.gz | 4s-import <SOME MAGIC>
SOME-MAGIC은 stdin을 포함하는 추상 파일의 경로와 같습니다.
내가 달리 해야하는 훨씬 느리고 더 많은 디스크 공간 소비 대안은 다음과 같습니다.
zcat huge.gz > huger
4s-import huger
답변
(또는 ) 의 프로세스 대체 연산자 <()
를 사용할 수 있습니다 .bash
zsh
4s-import <(zcat huge.gz)
이 연산자는 임시 FIFO를 생성합니다 /dev/fd/NN
및 대체 <(.)
문자열로 /dev/fd/NN
. 4s-import
이제 /dev/fd/NN
해당 fifo에서 열고 읽을 수 있으며 bash
run은 실행 zcat huge.gz
되고 출력은로 전송됩니다 /dev/fd/NN
.
답변
-
많은 프로그램에는
-
표준 입력이 있습니다. 그렇다면 “내장”으로 사용하십시오. -
/dev/stdin
또는/dev/fd/0
파일을 사용해 볼 수도 있습니다 . -
세 번째 옵션은
mkfifo
fifo 특수 파일을 만드는 데 사용 하는 것입니다. 한 쉘에서는 데이터 (예 :)를 파이프하고 다른 쉘에서는gunzip > your_fifo_file
fifo를 파일로 사용하여 프로그램을 호출합니다.