我知道如何列出裝入的目錄,並知道如何卸載它們。通過「裝載綁定」目錄循環並匹配您想要解除綁定的目錄
作爲帶腳本腳本的noob有一種方法可以通過列表輸出mount
...循環,並使用給定變量(/ some/random/path)匹配每個條目並在該腳本上執行一個命令匹配的條目。
沒有什麼複雜的只是一個簡單的循環,因爲它在哪裏或指針在正確的方向。
注:我擁有的代碼/任務更復雜,所以這只是如何在shell中循環。
在此先感謝。
M.
我知道如何列出裝入的目錄,並知道如何卸載它們。通過「裝載綁定」目錄循環並匹配您想要解除綁定的目錄
作爲帶腳本腳本的noob有一種方法可以通過列表輸出mount
...循環,並使用給定變量(/ some/random/path)匹配每個條目並在該腳本上執行一個命令匹配的條目。
沒有什麼複雜的只是一個簡單的循環,因爲它在哪裏或指針在正確的方向。
注:我擁有的代碼/任務更復雜,所以這只是如何在shell中循環。
在此先感謝。
M.
這是一個例子:
for directory in $(mount | awk '{print $1}'); do
#whatever with $directory
done
(我想你的坐騎命令返回目錄作爲第一項)
匹配所有綁定坐騎,我使用awk '$NF ~ /bind/ { print }
該字段通常是第六個(6美元),但這會失敗,並且使用空格裝載,其中NF(字段數)進入播放。由於選項最後列出。
如果您確定不會有空間(這會對其他部分造成一些麻煩),我會使用$6
。
我不清楚天氣你想要的「源」或「目標」的安裝,取代print
與print $<N>
其中<N>
是你想要的領域。 1的源代碼(如設備或目錄綁定的目錄)和3個目標 - 但正如我所說,如果目標名稱中有空格,這將會很麻煩。
我想你應該能夠解析/etc/mtab
。使用並假設你想要的目標名稱,沒有討厭的空間,嘗試:
for target in $(awk '$4 ~ /bind/ {print $2}' /etc/mtab); do
echo "Doing stuff to $target"
done
編輯:可以,當然match ones you want to unbind
添加到AWK。 例子:awk '$4 ~ /bind/ && $2 ~ /(dir1|dir2)/ { ...
等
你說要進行復雜的操作,但是如果你在卸載所有綁定坐騎這fstab中也可有興趣,umount -a -O bind
會工作。