下的掛載點,極不堅固的外殼代碼會給$path
安裝點:給路徑
(for i in $(df|cut -c 63-99); do case $path in $i*) echo $i;; esac; done) | tail -n 1
有沒有更好的方式外殼做到這一點?
後記
這個腳本實在太可惜,但贖回的質量,它適用於我的系統。請注意,多個掛載點可能是前綴$path
。
例子 在Linux系統上:
[email protected]:~$ path=/sys/block/hda1 [email protected]:~$ for i in $(df -a|cut -c 57-99); do case $path in $i*) echo $i;; esac; done| tail -1 /sys
在Mac OSX系統
cas local$ path=/dev/fd/0 cas local$ for i in $(df -a|cut -c 63-99); do case $path in $i*) echo $i;; esac; done| tail -1 /dev
注意需要改變,因爲DF的方式輸出不同的切的參數;使用awk可以解決這個問題,但即使awk也是不可移植的,因爲結果的格式範圍是df返回的各種實現。
回答 它看起來像改寫(munging)表格輸出是外殼內的唯一途徑,但
df -P "$path" | tail -1 | awk '{ print $NF}'
基於ghostdog74的回答,是什麼我有一個大的提升。注意兩個新問題:首先,df $path
堅持認爲$path
命名現有文件,我上面的腳本並不在意;其次,不用擔心解引用符號鏈接。如果您的掛載點中有空格,則這不起作用,如果其中的卷名具有空格的可移動介質,則會發生這種情況。
編寫Python代碼正確完成工作並不困難。
參考http://filesfault.com/questions/66492/in-nix-how-to-determine-which-filesystem-a-particular-file-is-on – 2010-02-08 14:27:50
請參閱我對「df」$ path路徑的回答「 '當設備或安裝點在其中有空格時起作用。 – crashmaxed 2014-04-03 16:29:05