Dateien finden, die _nicht_ da sind
- killerhippy
- Posts: 529
- Joined: 19. May 2000 19:36
- Contact:
Dateien finden, die _nicht_ da sind
Hi,
Wie findet man ein Verzeichnis in einem gegebenen Pfad, in dem eine bestimmte Datei in den darin enthaltenen Unterverzeichnissen nicht enthalten ist?
Wie findet man ein Verzeichnis in einem gegebenen Pfad, in dem eine bestimmte Datei in den darin enthaltenen Unterverzeichnissen nicht enthalten ist?
Last edited by killerhippy on 24. Sep 2003 19:04, edited 1 time in total.
Es gibt keine dumme Fragen!
Killerhippy
Killerhippy
Re: Dateien finden, die _nicht_ da sind
Hi!
???
Vielleicht hilft ja das
<code>
#!/bin/bash
if [ -e $1 ]
then
echo "Datei $1 vorhanden"
else
echo "Datei $1 NICHT vorhanden"
fi;
</code>
???
Vielleicht hilft ja das
<code>
#!/bin/bash
if [ -e $1 ]
then
echo "Datei $1 vorhanden"
else
echo "Datei $1 NICHT vorhanden"
fi;
</code>
- killerhippy
- Posts: 529
- Joined: 19. May 2000 19:36
- Contact:
Re: Dateien finden, die _nicht_ da sind
<img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle"> Nicht ganz.
Also:
in <b>/var/db/pkg/</b> befinden sich Unterverzeichnisse, z.B.
<b>app-admin/addpatches-0.2/
app-admin/fam-oss-2.6.10-r1/
app-admin/...</b>
und z.B.
<b>app-arch/cabextract-0.6/
app-arch/mt-st-0.7/
app-arch/...</b>
usw.
In <b>/var/db/pkg/<Unterverzeichnisse1>/<Unterverzeichnisse2>/<Datei></b> moechte ich das <Unterverzeichnis2> finden, in denen <Datei> nicht vorhanden ist.
Noch einmal fuer das bessere Verstaendnis semigrafisch:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
/var/db/pkg/<Unterverzeichnis1>/<Unter-Unterverzeichnis1>/<Datei>
/var/db/pkg/<Unterverzeichnis2>/<Unter-Unterverzeichnis2>/<Datei>
/var/db/pkg/<Unterverzeichnis3>/<Unter-Unterverzeichnis3>/
/var/db/pkg/<Unterverzeichnis4>/<Unter-Unterverzeichnis4>/<Datei>
usw.
</font><hr></pre></blockquote>
...und ich moechte <b>/var/db/pkg/<Unterverzeichnis3>/<Unter-Unterverzeichnisse3>/</b> finden.
Also:
in <b>/var/db/pkg/</b> befinden sich Unterverzeichnisse, z.B.
<b>app-admin/addpatches-0.2/
app-admin/fam-oss-2.6.10-r1/
app-admin/...</b>
und z.B.
<b>app-arch/cabextract-0.6/
app-arch/mt-st-0.7/
app-arch/...</b>
usw.
In <b>/var/db/pkg/<Unterverzeichnisse1>/<Unterverzeichnisse2>/<Datei></b> moechte ich das <Unterverzeichnis2> finden, in denen <Datei> nicht vorhanden ist.
Noch einmal fuer das bessere Verstaendnis semigrafisch:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
/var/db/pkg/<Unterverzeichnis1>/<Unter-Unterverzeichnis1>/<Datei>
/var/db/pkg/<Unterverzeichnis2>/<Unter-Unterverzeichnis2>/<Datei>
/var/db/pkg/<Unterverzeichnis3>/<Unter-Unterverzeichnis3>/
/var/db/pkg/<Unterverzeichnis4>/<Unter-Unterverzeichnis4>/<Datei>
usw.
</font><hr></pre></blockquote>
...und ich moechte <b>/var/db/pkg/<Unterverzeichnis3>/<Unter-Unterverzeichnisse3>/</b> finden.
Last edited by killerhippy on 24. Sep 2003 19:48, edited 2 times in total.
Re: Dateien finden, die _nicht_ da sind
du willst ein unterverzeichniss finden? wen interessiert dann die datei die NICHT vorhanden ist? nur weil sonst dateien vorhanden sind in anderen verzeichnissen. komische fragestellung.
ich würde gerne wissen wo in der häuserreihe in der marktstrasse eine bestimmte klingel ist die es nicht gibt!
bitte kein alkohol konsumieren vor dem posten, ansonsten kannst du es mal mit find probieren.
man find
das kann dateien und verzeichnisse mit suchmustern durchsuchen.
ich würde gerne wissen wo in der häuserreihe in der marktstrasse eine bestimmte klingel ist die es nicht gibt!
bitte kein alkohol konsumieren vor dem posten, ansonsten kannst du es mal mit find probieren.
man find
das kann dateien und verzeichnisse mit suchmustern durchsuchen.
Re: Dateien finden, die _nicht_ da sind
> ich würde gerne wissen wo in der häuserreihe in der marktstrasse eine bestimmte klingel ist die es nicht gibt!
den klingelnvertreter interessieren zb strassen, in denen es noch keine häuser mit klingeln von seiner firma gibt.
den klingelnvertreter interessieren zb strassen, in denen es noch keine häuser mit klingeln von seiner firma gibt.
- killerhippy
- Posts: 529
- Joined: 19. May 2000 19:36
- Contact:
Re: Dateien finden, die _nicht_ da sind
<img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle"> Ich kann nachvollziehen, dass die Fragestellung lustig oder widersinning erscheint, ist sie aber nicht.
Mein Packetmanager ist inkonsistent geworden, und ich versuche mich an Forensik <img src="http://www.pl-forum.de/UltraBoard/Images/Sad.gif" border="0" align="middle">
Es fehlt naemlich eine Beschreibungsdatei und ich moechte herausfinden wo.
Mein Packetmanager ist inkonsistent geworden, und ich versuche mich an Forensik <img src="http://www.pl-forum.de/UltraBoard/Images/Sad.gif" border="0" align="middle">
Es fehlt naemlich eine Beschreibungsdatei und ich moechte herausfinden wo.
Last edited by killerhippy on 25. Sep 2003 7:55, edited 1 time in total.
Es gibt keine dumme Fragen!
Killerhippy
Killerhippy
Re: Dateien finden, die _nicht_ da sind
locate /var/db/pkg/ | grep -v <Datei>
Muesste gehen.
gruss
jj
Muesste gehen.
gruss
jj
Re: Dateien finden, die _nicht_ da sind
Wenn Deine Datenbank aktuell ist. Aktualisierst Du ggf. vorher mit updatedb.
gruss
jj
gruss
jj
- killerhippy
- Posts: 529
- Joined: 19. May 2000 19:36
- Contact:
Re: Dateien finden, die _nicht_ da sind
@jj:
dein Tip fuehrt zwar zum Erfolg (vermutlich), trifft jedoch auch alle anderen Dateien in allen Verzeichnissen, die nicht so heissen wie die Zieldatei...
Also, inzwischen glaube ich, dass es wohl doch keinen Befehl gibt, der sowas durch einfache Schalter oder pattern sowas greifen kann.
Mit ein bisschen Programmierlogik ist das aber wohl zu schaffen, also werde ich mir ein Script dafuer basteln.
Vielen Dank fuer die Aufmerksamkeit,
dein Tip fuehrt zwar zum Erfolg (vermutlich), trifft jedoch auch alle anderen Dateien in allen Verzeichnissen, die nicht so heissen wie die Zieldatei...
Also, inzwischen glaube ich, dass es wohl doch keinen Befehl gibt, der sowas durch einfache Schalter oder pattern sowas greifen kann.
Mit ein bisschen Programmierlogik ist das aber wohl zu schaffen, also werde ich mir ein Script dafuer basteln.
Vielen Dank fuer die Aufmerksamkeit,
Es gibt keine dumme Fragen!
Killerhippy
Killerhippy
Re: Dateien finden, die _nicht_ da sind
Hi
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
find /var/db/pkg/<Unterverzeichnis1>/ -empty
</font><hr></pre></blockquote>
findet die Unterverzeichnisse wo keine Dateien sind in /var/db/pkg/<Unterverzeichnis1>/
Bevor du anfängst mit Programmieren solltest du die Man-Pages lesen. Der Befehl find ist mächtiger als man manchmal denken mag.
Marc
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
find /var/db/pkg/<Unterverzeichnis1>/ -empty
</font><hr></pre></blockquote>
findet die Unterverzeichnisse wo keine Dateien sind in /var/db/pkg/<Unterverzeichnis1>/
Bevor du anfängst mit Programmieren solltest du die Man-Pages lesen. Der Befehl find ist mächtiger als man manchmal denken mag.
Marc
Re: Dateien finden, die _nicht_ da sind
Lieber Marc!
Lesen können bedeuted nicht verstehen können.
Lesen können bedeuted nicht verstehen können.
Re: Dateien finden, die _nicht_ da sind
Hi!
Ich skripte so gerne an solchen Aufgabenstellungen herum, weil man immer wieder etwas neues lernt... Diesmal hat mich find(1) mal wieder mit schönen Optionen überrascht.
Meine Lösung sieht so aus:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">#!/bin/bash
BASEDIR=/var/db/pkg
SEARCHFILE=datei # Das wirst Du anpassen muessen, da ich mangels Debian-System gerade nicht
# nachschlagen kann, wie die Datei heissen muesste.
find $BASEDIR -mindepth 2 -maxdepth 2 -type d -print | \<!--no-->
while read DIR ; do
[[ ! -a $DIR/$SEARCHFILE ]] && echo $DIR
done
exit 0
</font><hr></pre></blockquote>
find(1) sucht nur die bewussten 2 Verzeichnis-Ebenen tiefer. In der Schleife wird dann einfach jedes Verzeichnis auf Existenz einer beliebig benannten Datei gecheckt und bei Nicht-Vorhandensein das Verzeichnis ausgegeben.
Ein Kommando, das direkt mittels Optionen diese Fragestellung lösen könnte, ist mit nicht bekannt (sonst hätte ich's ja auch benutzt <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">).
Jochen
Ich skripte so gerne an solchen Aufgabenstellungen herum, weil man immer wieder etwas neues lernt... Diesmal hat mich find(1) mal wieder mit schönen Optionen überrascht.
Meine Lösung sieht so aus:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">#!/bin/bash
BASEDIR=/var/db/pkg
SEARCHFILE=datei # Das wirst Du anpassen muessen, da ich mangels Debian-System gerade nicht
# nachschlagen kann, wie die Datei heissen muesste.
find $BASEDIR -mindepth 2 -maxdepth 2 -type d -print | \<!--no-->
while read DIR ; do
[[ ! -a $DIR/$SEARCHFILE ]] && echo $DIR
done
exit 0
</font><hr></pre></blockquote>
find(1) sucht nur die bewussten 2 Verzeichnis-Ebenen tiefer. In der Schleife wird dann einfach jedes Verzeichnis auf Existenz einer beliebig benannten Datei gecheckt und bei Nicht-Vorhandensein das Verzeichnis ausgegeben.
Ein Kommando, das direkt mittels Optionen diese Fragestellung lösen könnte, ist mit nicht bekannt (sonst hätte ich's ja auch benutzt <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">).
Jochen
- killerhippy
- Posts: 529
- Joined: 19. May 2000 19:36
- Contact:
Re: Dateien finden, die _nicht_ da sind
@Jochen:
Hi Jochen,
schoen wieder was von dir zu lesen!
Dein Script ist voll funktionsfaehig und hat prompt den richtigen Treffer gelandet!
Wunderbar, nun kann ich mal gucken, was ich da reparieren kann (vielleicht)...
thanxalot,
Hi Jochen,
schoen wieder was von dir zu lesen!
Dein Script ist voll funktionsfaehig und hat prompt den richtigen Treffer gelandet!
Wunderbar, nun kann ich mal gucken, was ich da reparieren kann (vielleicht)...
thanxalot,
Es gibt keine dumme Fragen!
Killerhippy
Killerhippy