DF -t NFS $目錄如何判斷(在上海)的目錄是否被安裝在NFS
返回兩行輸出,如果目錄是NFS掛載的一線,如果事實並非如此。
DF的某些版本給退出狀態1,如果它不是NFS安裝,但GNU的coreutils 5.3.0不...
if [ `df -t nfs . | wc -l` = 2 ];
感覺不雅和他的同事說,這不充分檢查錯誤。有一個更好的方法嗎?
DF -t NFS $目錄如何判斷(在上海)的目錄是否被安裝在NFS
返回兩行輸出,如果目錄是NFS掛載的一線,如果事實並非如此。
DF的某些版本給退出狀態1,如果它不是NFS安裝,但GNU的coreutils 5.3.0不...
if [ `df -t nfs . | wc -l` = 2 ];
感覺不雅和他的同事說,這不充分檢查錯誤。有一個更好的方法嗎?
你總是可以檢查mtab中它使所有安裝的文件系統的記錄在一個平面文件,如果你使用strace的,看看這是所有DF做反正。我想你也可以使用/ proc/mounts,如果你在Linux中運行它。
重複的問題How do I determine if a directory is an NFS mount point in shellscript。簡短的回答,請使用stat
命令。
我試過了幾個選項,但你對我來說似乎仍然更優雅。你們的同事是否提到了這種方法會出現的錯誤? +1一個不錯的嘗試。 – 2011-01-28 16:48:57
好的,我發現了一個問題。如果第一個輸出列非常長(例如`nfs_server:/ long/mount/point`),那麼`df`會將輸出分成兩行,最後是`wc -l = 3`。將解決方案更改爲`if [.... -gt 1]`可輕鬆解決問題。 – 2011-01-28 17:02:12
@ShawnChin:如果你應用`--portability` /`-P`選項,它不會換行很長的行。非常適合機器加工。 (用`df(GNU coreutils)7.4`測試) – RobM 2011-05-23 09:58:02