如何自動清除指定資料夾下的符號連結
導讀 | 這篇文章主要介紹了使用 實現自動清除指定資料夾下丟失連結檔案的符號連結,本文給大家介紹的非常詳細,具有一定的參考借鑑價值,需要的朋友可以參考下 |
可清除,指定資料夾下,對視連結檔案的符號連結。
在使用 時,常常會為自己許多檔案或者程式建立符號連結,這樣就不用每次都到對應的資料夾下去尋找對應的檔案而只需要對需要經常訪問的檔案建立符號連結就可以了,這樣就能把你常需要訪問的檔案放到桌面上,或者指定到另外一個資料夾中。
這樣訪問時,方便了很多,但是用完之後往往留下許多的符號連結,這些連結需要使用者自己手動確認是否可以刪除,為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符號
- 符號連結符號
- 連結使用的符號符號
- 如何在指定資料夾下進入jupyter notebook
- Linux下刪除指定資料夾下指定字尾名的檔案Linux
- windows在指定資料夾下開啟cmdWindows
- Unity3D - 如何引入包到指定的資料夾Unity3D
- Windows 中的硬連結、目錄聯接(軟連結)、符號連結、快捷方式Windows符號
- pycharm 取消空格,逗號 等符號的自動補全PyCharm符號
- python 如何刪除資料夾下的所有檔案和子資料夾?Python
- 如何清除 Elasticsearch 中的資料Elasticsearch
- python的應用 | 提取指定資料夾下所有PDF檔案的頁數Python
- .gitignore 在已忽略資料夾中不忽略指定檔案、資料夾...Git
- Mac 系統如何利用軟連結在根目錄建立資料夾?Mac
- 異地自動備份INSTALL資料夾
- win10如何設定自動顯示資料夾大小_win10怎麼顯示資料夾的大小Win10
- Linux shell 根據時間批量刪除指定資料夾下的檔案Linux
- 啟動filezilla後自動連線指定站點及進入指定的目錄
- 如何修復帶有問號錯誤的 Mac 資料夾Mac
- ls -ld 符號連結 加上斜槓輸出不同符號
- 在 Linux 中怎樣移除(刪除)符號連結Linux符號
- 百度熊掌號連結自動提交WordPress外掛
- 如何在VirtualBox客戶機使用符號連線符號
- mac下如何使用Sed批量替換資料夾下的字串Mac字串
- Git 合併指定檔案或資料夾Git
- git針對指定資料夾建立版本庫Git
- node_modules 資料夾下 .bin 隱藏資料夾的作用
- Bash 指令碼例項:獲取符號連結的目標位置指令碼符號
- Node.js折騰記一:讀指定資料夾,輸出該資料夾的檔案樹Node.js
- VBA判斷指定的資料夾或檔案是否存在
- 快速新建多個資料夾,而且是指定名稱的!
- 第二天:識別符號、賦值、資料型別、格式符、常量、自動轉換、強制轉換。符號賦值資料型別
- linux下找出核心符號資訊的4種方法Linux符號
- PbootCMS後臺自動清理快取runtime資料夾boot快取
- 機械硬碟加速原理探究,Windows中目錄連結和符號連結的淺顯區別硬碟Windows符號
- 資料庫中字串連線符的使用資料庫字串
- 2.4.2 Step 1: 指定例項識別符號 (SID)符號
- [MySQL] MySQL資料庫中唯一識別符號(ID)的梳理總結MySql資料庫符號