如何自動清除指定資料夾下的符號連結
導讀 | 這篇文章主要介紹了使用 實現自動清除指定資料夾下丟失連結檔案的符號連結,本文給大家介紹的非常詳細,具有一定的參考借鑑價值,需要的朋友可以參考下 |
可清除,指定資料夾下,對視連結檔案的符號連結。
在使用 時,常常會為自己許多檔案或者程式建立符號連結,這樣就不用每次都到對應的資料夾下去尋找對應的檔案而只需要對需要經常訪問的檔案建立符號連結就可以了,這樣就能把你常需要訪問的檔案放到桌面上,或者指定到另外一個資料夾中。
這樣訪問時,方便了很多,但是用完之後往往留下許多的符號連結,這些連結需要使用者自己手動確認是否可以刪除,為linux的使用帶來很多的不方便,使用該指令碼就能解放你的雙手,只需要執行一下指令碼,就能將對應資料夾下沒有用的符號連結清除。
#!/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指令碼, 最起碼現在不是. #注意: 謹防在/proc檔案系統和任何死迴圈連結中使用! ############################################################## #如果沒有引數被傳遞到指令碼中, 那麼就使用 #當前目錄. 否則就是用傳遞進來的引數作為目錄 #來搜尋. #################### [ $# -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 # 建立一個新檔案 name andrew@andrew:/work/bash/src$ touch name # 為name建立符號連結 andrew@andrew:/work/bash/src$ ln -s name aaa # 刪除name檔案, aaa將會變成丟失連結檔案的符號連結 andrew@andrew:/work/bash/src$ rm name # 檢視aaa為執行當前目錄下的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
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2776437/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- dotnet 6 使用 CreateSymbolicLink 建立資料夾符號連結Symbol符號
- 符號連結符號
- 連結使用的符號符號
- linux下刪除指定資料夾目錄下指定的檔名命令( find 指定的資料夾/ -name this.html~ |xargs rm -rf)LinuxHTML
- 如何在指定資料夾下進入jupyter notebook
- Linux下刪除指定資料夾下指定字尾名的檔案Linux
- windows在指定資料夾下開啟cmdWindows
- 連結檔案 (硬連線 與 符號連線)符號
- Unity3D - 如何引入包到指定的資料夾Unity3D
- pycharm 取消空格,逗號 等符號的自動補全PyCharm符號
- Windows 中的硬連結、目錄聯接(軟連結)、符號連結、快捷方式Windows符號
- 批量建立指定名稱資料夾
- python 如何刪除資料夾下的所有檔案和子資料夾?Python
- 刪除資料夾下SVN自動生成的檔案的一個bat方法BAT
- 複製指定源位置的多級資料夾下所有檔案到指定目標位置
- 資料庫自動重連資料庫
- 如何清除 Elasticsearch 中的資料Elasticsearch
- win10如何設定自動顯示資料夾大小_win10怎麼顯示資料夾的大小Win10
- Mac 系統如何利用軟連結在根目錄建立資料夾?Mac
- linux下查詢無效的符號連線(轉)Linux符號
- 如何修復帶有問號錯誤的 Mac 資料夾Mac
- .gitignore 在已忽略資料夾中不忽略指定檔案、資料夾...Git
- 啟動filezilla後自動連線指定站點及進入指定的目錄
- 百度熊掌號連結自動提交WordPress外掛
- Win10系統如何實現拖動檔案自動建立資料夾Win10
- 異地自動備份INSTALL資料夾
- Oralce ORA-12154 無法解析指定的連線識別符號符號
- ORA-12154:TNS:無法解析指定的連線識別符號符號
- mac下如何使用Sed批量替換資料夾下的字串Mac字串
- C#實現把指定資料夾下的所有檔案複製到指定路徑下以及修改指定檔案的字尾名C#
- python的應用 | 提取指定資料夾下所有PDF檔案的頁數Python
- ubuntu拷貝資料夾到另外一個資料夾下,如何寫shell命令:Ubuntu
- ls -ld 符號連結 加上斜槓輸出不同符號
- 如何設定路由器自動撥號連線上網路由器
- 【概念】【實驗】Linux的硬連結(Hard Link)與符號連結(Symbolic Link)Linux符號Symbol
- Git 合併指定檔案或資料夾Git
- git針對指定資料夾建立版本庫Git
- node_modules 資料夾下 .bin 隱藏資料夾的作用