답변:
파일 시스템 유형은 OS 독립적 인 방식으로 쉽게 액세스 할 수있는 것이 아닙니다. 파일 시스템 유형 이름은 OS에 따라 다르므로 표준 방법을 설정하려는 동기가 없었습니다.
비 포함 Linux 시스템 stat -f -c %T .
에서 현재 디렉토리의 파일 시스템 유형을 표시합니다. OSX의 stat
명령에는 이와 같은 것이 없습니다.
파일 시스템 유형이 유한 목록에 있는지 여부 만 알면되므로 Linux에서는 정보를 인쇄 할 경로 세트와 파일 시스템 유형 세트를 모두 제한 할 수 있습니다. 현재 디렉토리의 파일 시스템 유형이 목록에 없으면 오류 ( "df : 파일 시스템이 처리되지 않았습니다")가 표시됩니다.
if df -t sshfs -t nfs -t cifs . >/dev/null 2>/dev/null; then …
동일한 구문이 OSX에서 작동하거나 작동하지 않을 수 있습니다. 그렇지 않으면을 시도하십시오 df -T sshfs,nfs,cifs .
.
Linux에서 GNU 통계를 사용할 수 있습니다.
stat --file-system --format=%T /tmp/subdir/whatever
tmpfs
Linux에서는 util-linux 2.18부터 findmnt를 사용할 수 있습니다.
findmnt -n -o FSTYPE -T /home
nfs4
테스트하지는 않았지만 df -P
대부분의 플랫폼에서 동일하게 작동해야합니다.
이것은 Linux에서 작동합니다.
$ mount | grep "^$(df -Pk . | head -n 2 | tail -n 1 | cut -f 1 -d ' ') " | cut -f 5 -d ' '
또는 재사용 가능한 기능으로 나누십시오.
# get_mount <directory>
get_mount() {
df -Pk "$1" | head -n 2 | tail -n 1 | cut -f 1 -d ' '
}
# get_fs <mountpoint>
get_fs() {
mount | grep "^$1 " | cut -f 5 -d ' '
}
그리고 함수를 호출 :
get_fs $(get_mount .)
약간 빠른 사용으로 작성하여 다시 할 수 sed
또는 awk
하지만,이 방법은 아마 쉽게 읽을 수 있습니다.
이것이 작동하지 않으면 비슷한 결과를 시도 할 수 있지만 /etc/mtab
의 출력 대신 사용 하십시오 mount
.
P
에서는 df -P
이 같은 방식으로 행동해야하므로, POSIX입니다. 그러나 파일 시스템 경로에서 마운트 지점으로 이동하는 것이 더 까다 롭습니다.