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:
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>
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 > |