Mount

zsh:檢查 $PWD 是否在 tmpfs 掛載的文件系統上

  • August 29, 2020

如果目前位於已安裝的文件系統上,我想更改zsh提示顏色。$PWD``tmpfs

例如,/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等等,那將不起作用。

如何檢查是否$PWDtmpfs文件系統上?

在 Linux 上,您應該能夠:

findmnt -no FSTYPE .

返回文件系統的類型.

stat(不是 zshstat內置)的 GNU 實現也可以通過以下方式實現:

command stat -fc %T .

因此,您可以將該資訊記憶體$psvarchpwd掛鉤中的一個元素中:

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$ '

引用自:https://unix.stackexchange.com/questions/606965