濮阳杆衣贸易有限公司

主頁 > 知識庫 > 使用腳本實現(xiàn)自動清除指定文件夾下丟失鏈接文件的符號鏈接

使用腳本實現(xiàn)自動清除指定文件夾下丟失鏈接文件的符號鏈接

熱門標簽:電話機器人哪里有賣 萬利達百貨商場地圖標注 上海企業(yè)外呼系統(tǒng) 熱門電銷機器人 外呼電信系統(tǒng) 智能機器人電銷神器 河南虛擬外呼系統(tǒng)公司 okcc外呼系統(tǒng)怎么調速度 惠州龍門400電話要怎么申請

使用腳本實現(xiàn)自動清除指定文件夾下丟失鏈接文件的符號鏈接

腳本可清除,指定文件夾下,對視鏈接文件的符號鏈接。

在使用Linux時,常常會為自己許多文件或者程序建立符號鏈接,這樣就不用每次都到對應的文件夾下去尋找對應的文件而只需要對需要經常訪問的文件建立符號鏈接就可以了,這樣就能把你常需要訪問的文件放到桌面上,或者指定到另外一個文件夾中。

這樣訪問時,方便了很多,但是用完之后往往留下許多的符號鏈接,這些鏈接需要用戶自己手動確認是否可以刪除,為linux的使用帶來很多的不方便,使用該腳本就能解放你的雙手,只需要執(zhí)行一下腳本,就能將對應文件夾下沒有用的符號鏈接清除。

#!/bin/bash
# 一個可以測試鏈接斷掉的符號鏈接的文件,并且可以輸出它們指向的文件
# 以便于它們可以把輸出提供給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)鏈接中使用!
##############################################################
#如果沒有參數被傳遞到腳本中, 那么就使用
#當前目錄. 否則就是用傳遞進來的參數作為目錄
#來搜索.
####################
[ $# -eq 0 ]  directorys=`pwd` || directorys=$@

#編寫函數linkchk用來檢查傳遞進來的目錄或文件是否是鏈接,
#并判斷這些文件或目錄是否存在. 然后打印它們所指向的文件.
#如果傳遞進來的元素包含子目錄,
#那么把子目錄也放到linkcheck函數中處理, 這樣就達到了遞歸的目的.
##########
linkchk () {
  for element in $1/*; do
    [ -h "$element" -a ! -e "$element" ]  echo \"$element\"
    [ -d "$element" ]  linkchk $element
    # 當然, '-h'用來測試符號鏈接, '-d'用來測試目錄.
  done
}
#把每個傳遞到腳本的參數都送到linkchk函數中進行處理,
#檢查是否有可用目錄. 如果沒有, 那么就打印錯誤消息和
#使用信息.
################
for directory in $directorys; do
  if [ -d $directory ]
    then linkchk $directory
    else
      echo "$directory is not a directory"
      echo "Usage: $0 dir1 dir2 ..."
  fi
  done
exit 0
# 創(chuàng)建一個新文件 name
andrew@andrew:/work/bash/src$ touch name
# 為name創(chuàng)建符號鏈接
andrew@andrew:/work/bash/src$ ln -s name aaa
# 刪除name文件, aaa將會變成丟失鏈接文件的符號鏈接
andrew@andrew:/work/bash/src$ rm name
# 查看aaa為執(zhí)行當前目錄下的name的符號鏈接文件
andrew@andrew:/work/bash/src$ ls -l
總用量 44
lrwxrwxrwx 1 andrew andrew  4 2月  1 13:20 aaa -> name
-rwxrwxr-x 1 andrew andrew 8656 1月 30 14:46 a.out
-rw-rw-r-- 1 andrew andrew 1887 2月  1 13:08 broken_link.sh
-rw-rw-r-- 1 andrew andrew 322 1月 29 13:08 echo_unique.sh
-rw-rw-r-- 1 andrew andrew 1513 1月 29 15:55 escape_charater.sh
-rw-rw-r-- 1 andrew andrew 279 1月 30 13:48 exit_example.sh
-rw-rw-r-- 1 andrew andrew 199 2月  1 11:52 if_else_more.sh
-rw-rw-r-- 1 andrew andrew 1946 1月 30 21:03 if_true.sh
-rw-rw-r-- 1 andrew andrew 337 1月 29 14:02 single_quotation_mark.sh
-rw-rw-r-- 1 andrew andrew 864 2月  1 12:00 test.c
# 調用腳本清除當前文件夾中,丟失鏈接文件的符號鏈接
andrew@andrew:/work/bash/src$ bash broken_link.sh ./ | xargs rm
andrew@andrew:/work/bash/src$ ls -l
總用量 44
-rwxrwxr-x 1 andrew andrew 8656 1月 30 14:46 a.out
-rw-rw-r-- 1 andrew andrew 1887 2月  1 13:08 broken_link.sh
-rw-rw-r-- 1 andrew andrew 322 1月 29 13:08 echo_unique.sh
-rw-rw-r-- 1 andrew andrew 1513 1月 29 15:55 escape_charater.sh
-rw-rw-r-- 1 andrew andrew 279 1月 30 13:48 exit_example.sh
-rw-rw-r-- 1 andrew andrew 199 2月  1 11:52 if_else_more.sh
-rw-rw-r-- 1 andrew andrew 1946 1月 30 21:03 if_true.sh
-rw-rw-r-- 1 andrew andrew 337 1月 29 14:02 single_quotation_mark.sh
-rw-rw-r-- 1 andrew andrew 864 2月  1 12:00 test.c

總結

以上所述是小編給大家介紹的使用腳本實現(xiàn)自動清除指定文件夾下丟失鏈接文件的符號鏈接,希望對大家有所幫助!

您可能感興趣的文章:
  • 實現(xiàn)自動清除日期目錄shell腳本實例代碼
  • MSsql每天自動備份數據庫并每天自動清除log的腳本

標簽:周口 百色 綏化 淮安 合肥 周口 秦皇島 綿陽

巨人網絡通訊聲明:本文標題《使用腳本實現(xiàn)自動清除指定文件夾下丟失鏈接文件的符號鏈接》,本文關鍵詞  使用,腳本,實現(xiàn),自動,清除,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用腳本實現(xiàn)自動清除指定文件夾下丟失鏈接文件的符號鏈接》相關的同類信息!
  • 本頁收集關于使用腳本實現(xiàn)自動清除指定文件夾下丟失鏈接文件的符號鏈接的相關信息資訊供網民參考!
  • 推薦文章
    瑞安市| 景谷| 栾城县| 巴里| 茌平县| 大邑县| 奉节县| 蓝山县| 天长市| 新疆| 安平县| 县级市| 榆树市| 遵义县| 托克托县| 二手房| 庐江县| 文昌市| 永德县| 定日县| 阿合奇县| 邓州市| 湘乡市| 瑞昌市| 辽源市| 前郭尔| 景泰县| 丰原市| 澜沧| 五常市| 新平| 蓝山县| 托克托县| 琼结县| 遂宁市| 江永县| 武定县| 裕民县| 图片| 泗阳县| 峡江县|