linux shell 查找无效软链接

yecongde 2006-07-18 09:00:41
请问如何列出某个目录下所有的无效软链接,就是那些红色的一闪一闪的。
...全文
1954 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongyy 2006-07-21
  • 打赏
  • 举报
回复
find . -type l -ls 可以列出当前目录下的所有链接文件
得到结果如下
390921 0 lrwxrwxrwx 1 root root 4 7月 21 10:04 ./a11.c -> a1.c
390924 0 lrwxrwxrwx 1 root root 4 7月 21 10:05 ./a22.c -> a2.c
然后可以用
ls a1.c
ls a2.c
查看一下,如果文件没有,会提示
ls: a2.c: 没有那个文件或目录

具体做法如下:
find . -type l -ls >& lns.csv
把lns.csv传到windows上
用文本编辑器打开,将->替换成逗号(,)
然后用excel打开lns.csv
清空第一列,然后第一列全添上ls,
在用文本编辑器打开,去掉所有逗号,可以用ls 替换 ls ,
之后传到linux,
chmod 777 lns.csv
./lns.csv
OK
做起来稍微有点麻烦 呵呵
不过不太会写shell脚本
yecongde 2006-07-21
  • 打赏
  • 举报
回复
感谢楼上帮忙Up
我需要了解的是如何"列出" ,就是过滤掉正常的软链接,只显示无效的红闪状态的。
yecongde 2006-07-21
  • 打赏
  • 举报
回复
在dongyy(saka) 思路的指导下(就是,如果文件不存在,则会有错误提示),我写了下面的一句

find . -type l -maxdepth 1 -print|xargs lsattr -d 2>&1|grep "No such file"|awk '{print $11}'

其中lsattr -d 的作用就相当于试金石一样,如果文件不存在,就会有错误提示,而这个错误提示
里恰好有文件名。
运行了一下没有问题。还请大家看看有没有bug.或者有更简单的写法。

再次感谢dongyy(saka)的热心
yecongde 2006-07-20
  • 打赏
  • 举报
回复
up
bigbat 2006-07-20
  • 打赏
  • 举报
回复
ln -s
bigbat 2006-07-20
  • 打赏
  • 举报
回复
用ln –s 命令创建文件的符号链接
candy84 2006-07-19
  • 打赏
  • 举报
回复
这里能帮你解决你的问题!这里也有很多你想要的知识!
http://bbs.oneedu.cn/bbs

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧