一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - perl - 使用腳本實現(xiàn)自動清除指定文件夾下丟失鏈接文件的符號鏈接

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

2020-06-26 14:55AndrewYZWang perl

這篇文章主要介紹了使用腳本實現(xiàn)自動清除指定文件夾下丟失鏈接文件的符號鏈接,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/bash
# 一個可以測試鏈接斷掉的符號鏈接的文件,并且可以輸出它們指向的文件
# 以便于它們可以把輸出提供給xargs來進(jìn)行處理 :)
# 比如. 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)在不是.
#注意: 謹(jǐn)防在/proc文件系統(tǒng)和任何死循環(huán)鏈接中使用!
##############################################################
#如果沒有參數(shù)被傳遞到腳本中, 那么就使用
#當(dāng)前目錄. 否則就是用傳遞進(jìn)來的參數(shù)作為目錄
#來搜索.
####################
[ $# -eq 0 ] && directorys=`pwd` || directorys=$@
 
#編寫函數(shù)linkchk用來檢查傳遞進(jìn)來的目錄或文件是否是鏈接,
#并判斷這些文件或目錄是否存在. 然后打印它們所指向的文件.
#如果傳遞進(jìn)來的元素包含子目錄,
#那么把子目錄也放到linkcheck函數(shù)中處理, 這樣就達(dá)到了遞歸的目的.
##########
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ù)中進(jìn)行處理,
#檢查是否有可用目錄. 如果沒有, 那么就打印錯誤消息和
#使用信息.
################
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í)行當(dāng)前目錄下的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
# 調(diào)用腳本清除當(dāng)前文件夾中,丟失鏈接文件的符號鏈接
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

總結(jié)

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

原文鏈接:https://blog.csdn.net/andrewgithub/article/details/104132832

延伸 · 閱讀

精彩推薦
  • perlPerl的經(jīng)典用法分享

    Perl的經(jīng)典用法分享

    Perl的經(jīng)典用法分享,學(xué)習(xí)perl的朋友可以參考下 ...

    腳本之家6562020-06-06
  • perlperl pop push shift unshift實例介紹

    perl pop push shift unshift實例介紹

    perl的pop跟push操作數(shù)組的最右邊,shift跟unshift操作數(shù)組的最左邊 ...

    腳本之家4612020-06-10
  • perlPerl List::Util模塊使用實例

    Perl List::Util模塊使用實例

    這篇文章主要介紹了Perl List::Util模塊使用實例,本文給出掃描符合條件的某個列表并取出第一個符合條件的、求1到1000之間的和 、求一組數(shù)字的最大值與最小...

    腳本之家4712020-06-22
  • perlPerl使用nginx FastCGI環(huán)境做WEB開發(fā)實例

    Perl使用nginx FastCGI環(huán)境做WEB開發(fā)實例

    這篇文章主要介紹了Perl使用nginx FastCGI環(huán)境做WEB開發(fā)實例,實現(xiàn)了路由系統(tǒng)和模板系統(tǒng),需要的朋友可以參考下...

    Perl教程網(wǎng)2412020-06-18
  • perlPerl從文件中讀取字符串的兩種實現(xiàn)方法

    Perl從文件中讀取字符串的兩種實現(xiàn)方法

    有時候我們需要從文件中讀取字符串,這里簡單介紹下, 需要的朋友可以參考下 ...

    腳本之家6252020-06-08
  • perlperl use vars pragma使用技巧

    perl use vars pragma使用技巧

    perl 中的vars是perl中的一個pragma(預(yù)編譯指示符),專門用來預(yù)定義全局變量,這些預(yù)定義后的全局變量在qw()列表中,在整個引用perl文件中皆可使用,即便使...

    perl教程網(wǎng)6812020-06-16
  • perlperl命令行參數(shù)內(nèi)建數(shù)組@ARGV淺析

    perl命令行參數(shù)內(nèi)建數(shù)組@ARGV淺析

    這篇文章主要介紹了perl命令行參數(shù)內(nèi)建數(shù)組@ARGV淺析,本文重點在于講解@ARGV的用法,并通過實例來說明,需要的朋友可以參考下 ...

    perl教程網(wǎng)6162020-06-18
  • perlperl常見問題集合之二

    perl常見問題集合之二

    哪些平臺上有 Perl?要到哪里去找? Perl的標(biāo)準(zhǔn)發(fā)行版(由 perl 發(fā)展小組負(fù)責(zé)維護(hù))僅以原始碼形式發(fā)行。您可在 http: //www.perl.com/CPAN/src/latest.tar.gz處取得。這個檔...

    腳本之家2102020-05-29
主站蜘蛛池模板: 高清女主播一区二区三区 | 国产专区亚洲欧美另类在线 | 女人zooxx禽交| 91李宗精品72集在线观看 | 国产小视频免费看 | 亚欧综合| 91视在线国内在线播放酒店 | 国产精品九九热 | 波多野结衣教师未删减版 | 国内自拍网红在线综合 | 日韩精品视频福利资源站 | 国产婷婷成人久久av免费高清 | 99热这里只有精品国产在热久久 | 亚洲精品国产福利片 | chinese456老年gay| 国产品精人成福利视频 | 精品一区二区国语对白 | 国产精品极品美女自在线 | 精品一区二区三区免费站 | 黄在线观看www免费看 | ssni-497新任美脚女教师 | 国产精品久久久精品日日 | 国产在线看片护士免费视频 | 国产福利在线观看永久视频 | poren黑人 | 男人在线网址 | 欧美 亚洲 综合 卡通 另类 区 | 亚洲精品6久久久久中文字幕 | 日本啊v在线观看 | 欧美人xxxxxbbbb| 精品视频久久久久 | a级黄色网 | 国内精品视频一区二区三区八戒 | 国产欧美一区二区成人影院 | 色综合久久天天综合观看 | 99精品影视 | 亚洲成在人线视频 | 国产精品久久久久久岛国 | 973影院| 性做久久久久免费观看 | 天天快乐在线观看 |