я придумал следующую функцию, которая сначала пытается df -T
и смотрит вверх тип файла через mount
, если df -T
не доступен (например, на BusyBox систем):
_is_slow_file_system() {
df_T=$(df -T . 2>/dev/null) || true
if [[ $df_T == '' ]]; then
# 'df -T' might not be available (busybox, diskstation).
# 'stat -f' does not detect cifs (type UNKNOWN).
# fs_type=$(stat -f . | grep -o 'Type:.*' | cut -f2 -d\)
mount_point="$(df . | awk 'END {print $NF}')"
fs_type=$(mount | awk '$3 == "'$mount_point'" { print $5 }')
else
fs_type=$(echo $df_T | tail -n1 | tr -s ' ' | cut -f2 -d\ 2>/dev/null)
fi
case $fs_type in
(sshfs|nfs|cifs|fuse.bup-fuse) return 0 ;;
(*) return 1;;
esac
}