?? broken-link.sh
字號:
#!/bin/bash# broken-link.sh# 由Lee bigelow所編寫 <ligelowbee@yahoo.com># 已經(jīng)爭得作者的授權(quán)引用在本書中.#一個純粹的shell腳本用來找出那些斷掉的符號鏈接文件并且輸出它們所指向的文件.#以便于它們可以把輸出提供給xargs來進行處理 :)#比如. broken-link.sh /somedir /someotherdir|xargs rm##下邊的方法, 不管怎么說, 都是一種更好的辦法:##find "somedir" -type l -print0|\#xargs -r0 file|\#grep "broken symbolic"|#sed -e 's/^\|: *broken symbolic.*$/"/g'##但這不是一個純粹的bash腳本, 最起碼現(xiàn)在不是.#注意: 謹防在/proc文件系統(tǒng)和任何死循環(huán)鏈接中使用!###############################################################如果沒有參數(shù)被傳遞到腳本中, 那么就使用#當(dāng)前目錄. 否則就是用傳遞進來的參數(shù)作為目錄#來搜索.####################[ $# -eq 0 ] && directorys=`pwd` || directorys=$@#編寫函數(shù)linkchk用來檢查傳遞進來的目錄或文件是否是鏈接, #并判斷這些文件或目錄是否存在. 然后打印它們所指向的文件.#如果傳遞進來的元素包含子目錄, #那么把子目錄也放到linkcheck函數(shù)中處理, 這樣就達到了遞歸的目的.##########linkchk () { for element in $1/*; do [ -h "$element" -a ! -e "$element" ] && echo \"$element\" [ -d "$element" ] && linkchk $element # 當(dāng)然, '-h'用來測試符號鏈接, '-d'用來測試目錄. done}#把每個傳遞到腳本的參數(shù)都送到linkchk函數(shù)中進行處理, #檢查是否有可用目錄. 如果沒有, 那么就打印錯誤消息和#使用信息.################for directory in $directorys; do if [ -d $directory ] then linkchk $directory else echo "$directory is not a directory" echo "Usage: $0 dir1 dir2 ..." fidoneexit 0
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -