디스크 대신 RAM에 heredoc를 만드는 방법은 무엇입니까?

디스크 대신 RAM에 heredoc를 만드는 방법은 무엇입니까?

다음 스크립트를 파일에 저장합니다.

cat <<EOF | wc -l
$HOME
abc
$(hostname)
EOF

실행하면 다음 오류가 발생합니다.

$ ./a.sh 
./a.sh: line 1: cannot create temp file for here-document: No space left on device

내 데비안은 장치에 남은 공간이 없다고 생각합니다(이것은 사실이 아니지만 우리의 맥락을 벗어납니다). 하지만 RAM 공간은 충분합니다. 내 도구(스크립트)도 이 오류로 인해 작동을 거부하므로 실제 "남은 공간 없음" 문제를 해결할 수 없습니다. 실제 문제를 해결하기 위해 도구를 계속 사용할 수 있도록 스크립트가 "heredoc" 처리에 RAM을 사용하도록 하려면 어떻게 해야 합니까?

답변1

$TMPDIR변수가 RAM 디스크 /tmpfs의 디렉토리를 가리 키도록 합니다 . 이 변수는 bash(적어도) 쉘이 임시 파일을 생성하는 위치를 결정하기 때문입니다.

답변2

tmpfs파일 시스템의 마운트 지점 찾기

grep tmpfs /etc/mtab

내 경우에는 줄 중 하나가

 tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=808468k,nr_inodes=202117,mode=700,uid=1000,gid=1000 0 0

그런 다음 @telcoM이 언급했듯이

export TMPDIR=/run/user/1000

(또는 예를 들어 파일에 사용 wc -l $(hostname) >> /run/user/1000/myexample)

그건 그렇고, 이것은 $(hostname)단지 예일 뿐입니까, 아니면 이것을 기대하고 있습니까?

관련 정보