Potrzebuję niezależnego od platformy i lekkiego sposobu wykrywania typu montażu mojego CWD. W szczególności muszę ustalić, czy mój plik CWD jest podłączony do SSHFS, NFS, CIFS, SMB, czy do lokalnego magazynu bloków.
Muszę to zrobić na Mac OSX 10.6, 10.7 i RHEL5 (przynajmniej).
Istnieje możliwość użycia df, ale df zachowuje się zupełnie inaczej na tych dwóch platformach. Dodatkowo musiałbym sflashować dane wyjściowe za pomocą awk, który choć wykonalny jest ... delikatny.
Informacje te muszą być dostępne na pewnym poziomie. Czy istnieje narzędzie, którego nie jestem świadomy, i które może dostarczyć mi te informacje?
źródło
Możesz używać GNU stat w systemie Linux:
źródło
W Linuksie istnieje findmnt od wersji util-linux 2.18.
źródło
Nie testowałem tego, ale
df -P
powinien zachowywać się tak samo na większości platform.Działa to w systemie Linux.
Lub rozbicie go na funkcje wielokrotnego użytku:
I wywoływanie funkcji:
Można go przepisać, aby był nieco szybszy przy użyciu
sed
lubawk
, ale ten sposób jest prawdopodobnie łatwiejszy do odczytania.Jeśli to nie zadziała, możesz spróbować czegoś podobnego, ale używając
/etc/mtab
raczej niż wyjściamount
.źródło
P
Wdf -P
jest dla POSIX, więc powinien zachowywać się w ten sam sposób. Jednak przejście ze ścieżki systemu plików do punktu podłączenia jest bardziej skomplikowane.