Saya membutuhkan cara yang bebas platform dan ringan untuk mendeteksi tipe mount CWD saya. Khususnya, saya perlu menentukan apakah CWD saya berada di SSHFS, NFS, CIFS, SMB, atau mount block store lokal.
Saya perlu melakukan ini pada Mac OSX 10.6, 10.7, dan RHEL5 (minimal).
Ada kemungkinan menggunakan df, tetapi df berperilaku sangat berbeda pada kedua platform ini. Plus, saya harus mengikis keluarannya dengan awk, yang walaupun bisa diterapkan ... rapuh.
Info ini harus tersedia pada tingkat tertentu. Apakah ada alat yang tidak saya sadari yang dapat memberikan informasi ini kepada saya?
sumber
Anda dapat menggunakan stat GNU di Linux:
sumber
Di Linux ada findmnt tersedia sejak util-linux 2.18.
sumber
Belum mengujinya, tetapi
df -P
harus berperilaku sama di sebagian besar platform.Ini berfungsi di Linux.
Atau memecahnya menjadi fungsi yang dapat digunakan kembali:
Dan memanggil fungsi:
Bisa ditulis ulang menjadi sedikit lebih cepat menggunakan
sed
atauawk
, tetapi cara ini mungkin lebih mudah dibaca.Jika ini tidak berhasil, Anda dapat mencoba sesuatu yang serupa, tetapi menggunakan
/etc/mtab
daripada outputmount
.sumber
P
dalamdf -P
adalah untuk POSIX, sehingga harus berperilaku dengan cara yang sama. Namun, mendapatkan dari jalur filesystem ke titik mount lebih fiddly.