Unix
在 *nix 中,如何確定特定文件在哪個文件系統上?
在通用的現代 unix 環境(例如,GNU/Linux、GNU/Solaris 或 Mac OS X)中,是否有一種好方法可以確定特定絕對文件路徑所在的掛載點和文件系統類型?
我想我可以執行
mount
命令並手動解析該命令的輸出並將其與我的文件路徑進行字元串比較,但在我這樣做之前,我想知道是否有更優雅的方法。我正在開發一個使用擴展屬性的 BASH 腳本,並希望讓它為各種文件系統和主機環境做正確的事情(在可能的小範圍內)。
該命令
df(1)
採用一個或多個參數,並將返回該文件或目錄所在的掛載點和設備,以及使用資訊。mount -v
然後,您可以使用路徑或設備在或類似的輸出中查找文件系統類型。
df
不幸的是,兩者的輸出格式都mount
依賴於系統;至少在 Solaris、NetBSD 和 Mac OS X 之間沒有明顯的標準。
你可以使用stat。命令stat –printf ‘%d’ filename.txt將以十六進制/十進制形式返回設備編號。