zsh: $PWD가 tmpfs 마운트 파일 시스템에 있는지 확인

zsh: $PWD가 tmpfs 마운트 파일 시스템에 있는지 확인

현재 마운트된 파일 시스템에 있는 경우 프롬프트 색상을 변경하고 싶습니다 zsh.$PWDtmpfs

예를 들어, /dev/shm파일 tmpfs시스템. 나는 확인할 수 있습니다:

$ grep /dev/shm /proc/mounts 
tmpfs /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=26307700k 0 0

따라서 내가 들어가면 /dev/shm다음과 같이 할 수 있습니다.

grep -q "^tmpfs $PWD tmpfs " /proc/mounts

/dev/shm/foo하지만 , 등에 서 있으면 /dev/shm/foo/bar작동하지 않습니다.

파일 시스템 $PWD에 있는지 확인하는 방법은 무엇입니까 ?tmpfs

답변1

Linux에서는 다음을 수행할 수 있습니다.

findmnt -no FSTYPE .

파일 시스템 유형을 반환합니다..

다음을 통해 GNU 구현 stat( stat내장 zsh 아님)도 가능합니다.

command stat -fc %T .

$psvar따라서 후크된 요소에 해당 정보를 캐시할 수 있습니다 chpwd.

check_cwd_is_tmpfs() {
  if [[ $(command stat -fc %T .) = tmpfs ]]; then
    psvar[1]=red
  else
    psvar[1]=green
  fi
}
chpwd_functions+=(check_cwd_is_tmpfs)
check_cwd_is_tmpfs

PS1='%F{%1v}%~%F$ '

관련 정보