使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接
脚本可清除,指定文件夹下,对视链接文件的符号链接。
在使用Linux时,常常会为自己许多文件或者程序建立符号链接,这样就不用每次都到对应的文件夹下去寻找对应的文件而只需要对需要经常访问的文件建立符号链接就可以了,这样就能把你常需要访问的文件放到桌面上,或者指定到另外一个文件夹中。
这样访问时,方便了很多,但是用完之后往往留下许多的符号链接,这些链接需要用户自己手动确认是否可以删除,为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
总结
以上所述是小编给大家介绍的使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接,希望对大家有所帮助!
标签:
清除链接文件,脚本自动清除
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
2025年01月04日
2025年01月04日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]