4月
12
2010
分類:
最近更新:
2010-04-12
shell script 找尋指定的光碟片放在哪台光碟機
我的電腦上,內接兩台光碟機,偶爾還會接上外部光碟機。有時,則是把光碟片的內容複製到SD記憶卡,插在記憶卡讀卡機內。也就是說,我有多個可抽換式儲存設備。而在採用 udev 管理設備的 Linux 桌面環境中,每當我們把儲存媒介(CD, SD card)放入可抽換式儲存設備後,系統都會在 /meida 配賦一個掛載點。只是掛載點的名稱,預設使用設備的 UUID ,例如 /media/1234abcd 。對人而言,實在不是容易記憶的名稱。當電腦上有多個抽換式儲存設備時,就會帶來一些小小的麻煩。
例如我放入一片 Ubuntu 的安裝光碟片,有時我就會搞不清楚這片光碟片的內容掛載在哪個點下。所以,我就寫了一個 shell script ,到 /media 目錄下幫我找出來。
#!/bin/sh
# scan Ubuntu install CD.
for media in $( ls /media ); do
#echo "$media"
disc=/media/$media
if [ -d $disc/dists ]; then
for release in $( find $disc/dists -name Release ); do
#Origin: Ubuntu
#Version: 9.10
key_origin=`grep "Origin: Ubuntu" ${release}`
key_label=`grep -P "^Version: \d+\.\d+$" ${release}`
if [ -n "${key_origin}" ] && [ -n "${key_label}" ]; then
os_disc=$disc
break
fi
done
fi
if [ -n "$os_disc" ]; then
break
fi
done
if [ -n "$os_disc" ]; then
echo "${os_disc} is a Ubuntu install CD"
else
echo "There is no Ubuntu install CD"
exit 1
fi
exit 0
先用 ls 列出 /media 下現有的掛載點。用 find 搜尋掛載點下的指定檔案名稱。最後用 grep 找尋文件中是否有符合的識別文字。
樂多舊網址: http://blog.roodo.com/rocksaying/archives/12169181.html