Mailinglist Archive: opensuse-de (6022 mails)

< Previous Next >
Re: Wie finde ich "tote" Symlinks heraus ?
  • From: Bertram Scharpf <b.scharpf@xxxxxxxxxxxxx>
  • Date: Mon, 18 Feb 2002 10:16:40 +0100
  • Message-id: <20020218091305.883A2E6546@xxxxxxxxxxxx>
Hallo,

auf die Gefahr hin, daß ich mit einer abgehobenen
Lösung auf ein längst abgehaktes Problem antworte:


Am Sonntag, 17. Februar 2002 11:03 schrieb Harry Rüter:

In einer Partition befinden sich
etliche Symlinks von denen einige
"tot" sind, also nicht auf die "richtigen"
Dateien zeigen.

[...]

Tote Symlinks stelle ich inzwischen fest mit einem
kleinen C-Programm `tryopen', das nur versucht, die
Datei zu öffnen.

Die toten Links entferne ich dann mit:

$ find . -type l -not -exec tryopen {} \; -exec rm -fv {} \;

Das funktioniert sogar für Links auf Verzeichnisse.

Gruß
Bertram


-------------- tryopen.c ----------------
#include <fcntl.h>

extern int errno;

int main( int argc, char **argv)
{
int r = 0;
int i;

for (i = 1; i < argc; ++i) {
int fd;
fd = open( argv[ i], O_RDONLY);
if (fd < 0) {
r = errno;
break;
}
close( fd);
}
return r;
}
-----------------------------------------

$ cc -o tryopen tryopen.c

-----------------------------------------

--
Bertram Scharpf
<b.scharpf@xxxxxxxxxxxxx>

< Previous Next >