日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接

發(fā)布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

腳本可清除,指定文件夾下,對視鏈接文件的符號鏈接。
在使用Linux時,常常會為自己許多文件或者程序建立符號鏈接,這樣就不用每次都到對應的文件夾下去尋找對應的文件而只需要對需要經(jīng)常訪問的文件建立符號鏈接就可以了,這樣就能把你常需要訪問的文件放到桌面上,或者指定到另外一個文件夾中。
這樣訪問時,方便了很多,但是用完之后往往留下許多的符號鏈接,這些鏈接需要用戶自己手動確認是否可以刪除,為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)鏈接中使用! ############################################################## #如果沒有參數(shù)被傳遞到腳本中, 那么就使用 #當前目錄. 否則就是用傳遞進來的參數(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# 當然, '-h'用來測試符號鏈接, '-d'用來測試目錄.done } #把每個傳遞到腳本的參數(shù)都送到linkchk函數(shù)中進行處理, #檢查是否有可用目錄. 如果沒有, 那么就打印錯誤消息和 #使用信息. ################ for directory in $directorys; doif [ -d $directory ]then linkchk $directoryelseecho "$directory is not a directory"echo "Usage: $0 dir1 dir2 ..."fidone 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

總結

以上是生活随笔為你收集整理的使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。