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実装statstat組み込み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$ '

関連情報