On 16 Sep 2022 at 8:48, stan wrote:
Date sent: Fri, 16 Sep 2022 08:48:29 -0700 From: stan upaitag@zoho.com To: users@lists.fedoraproject.org Copies to: mikes@guam.net Subject: Re: Question on bad links? Organization: zohofree
On Fri, 16 Sep 2022 14:55:11 +1000 "Michael D. Setzer II via users" users@lists.fedoraproject.org wrote:
I've run this little script from time to time in /
find . -xtype l >/badlinks 2>ERR grep -v '/proc|/run' </badlinks >/badlinks-clean
At present ends up with other 300 lines in the badlinks-clean
Cleaned up a number of bad lines in a jre directory that seemed to be left over stuff from fc27 to fc33? Nothing from fc34?? and the reset were the currect fc35 files I have on system. Seems things that just got left??
Not sure if it is coming to have these on a system?
Wonder if someone with a lot more knowledge than I have might know best option. Just leave them, remove some, remove all? Figured the ones in /proc and /run should be left alone??
I don't have a lot more knowledge than you do, but a symbolic link that points to nothing, is broken, is useless. Anything that depends on finding what it expects at the end of the link is going to break. So, my opinion is that removing them is harmless. If your system is working correctly, then leaving them is also harmless, other than the cruft it represents, because they aren't being accessed (or you would be getting errors).
The proc / run links are temporary, in that the proc / run filesystem is created each boot, so deleting them is pointless. It doesn't make sense that there are all those broken links. Could the find be incorrect in some way? By that I mean that it is issuing false positives. When I run the command find /proc -L -type l | less or find /run -L -type l | less I get no broken links.
From the find man page for -type l, l symbolic link; this is never true if the -L option or the -follow option is in effect, unless the symbolic link is broken. If you want to search for symbolic links when -L is in effect, use -xtype.
So, using find /proc -L -type l returns true if a link is broken. Note that the default for find is -P, never follow symbolic links, which your command will use.
Not clear on differnce be -l and -L? find . -xtype l >/badlinks 2>ERR grep -v '/proc|/run' </badlinks >/badlinks-clean
Comparing the badlinks and badlinks-clean. wc -l badlink* 647 badlinks 321 badlinks-clean 968 total
Looking at one of the lines reported.
ls /run/systemd/units/invocation:systemd-fsck-root.service -l lrwxrwxrwx. 1 root root 32 Sep 11 19:46 /run/systemd/units/invocation:systemd-fsck-root.service -> df1352a57bbc4b7ab5327327184ff57d
The /run/systemd/units/invocation:systemd-fsck-root.service displays in a dark red with the df1352a57bbc4b7ab5327327184ff57d displays as white letters on a bright red background.
Seems all files in that directory link to files that are not there?
Example from last of badlinks-clean
ls -l extlinux.conf lrwxrwxrwx. 1 root root 30 Jul 24 2021 extlinux.conf -> ../boot/extlinux/extlinux.conf
Same colors on link and there is no ../boot/extlinux/extlinux.conf file, but many other files do exist in that directory.
In looking at the -L option, it seems that takes info from file it links to, so if the file it links to doesn't exist then woul expect it not to show anything?
+------------------------------------------------------------+ Michael D. Setzer II - Computer Science Instructor (Retired) mailto:mikes@guam.net mailto:msetzerii@gmail.com Guam - Where America's Day Begins G4L Disk Imaging Project maintainer http://sourceforge.net/projects/g4l/ +------------------------------------------------------------+