find nicht auf Unterverzeichnisse anwenden, möglich?
find nicht auf Unterverzeichnisse anwenden, möglich?
Hallo,
ich suche bestimtme Dateien mit find und bearbeite dann diese. Allerdings muss ich noch verschiedene Kriterien wie z.B. die ctime angeben, damit nicht auch noch Dateien von Unterverzeichnissen gefunden werden.
Gibt es auch eine Möglichkeit, mit der ich find sagen kann, dass er nur z.B. /home/daniel/test durchsuchen soll und nicht noch die Unterverzeichnisse, die dort sind?
Habe in der manpage zu find nichts passendes finden können.
Danke.
ich suche bestimtme Dateien mit find und bearbeite dann diese. Allerdings muss ich noch verschiedene Kriterien wie z.B. die ctime angeben, damit nicht auch noch Dateien von Unterverzeichnissen gefunden werden.
Gibt es auch eine Möglichkeit, mit der ich find sagen kann, dass er nur z.B. /home/daniel/test durchsuchen soll und nicht noch die Unterverzeichnisse, die dort sind?
Habe in der manpage zu find nichts passendes finden können.
Danke.
Oh, yeah!
http://www.informatik.uni-frankfurt.de/ ... ind.1.html
dann halt diese manpage
dann halt diese manpage
Sorry, aber irgendwie verstehe ich das falsch oder ich mache was falsch.
Habe folgendes probiert:
Jedoch wird auch ein Unterverzeichnis genommen (/pafd/unterverzeichnis).
Habe folgendes probiert:
Code: Alles auswählen
find path-name-list 0 /pfad/ -type f -exec ls -l {} \;
Oh, yeah!
- blackstream
- Beiträge: 143
- Registriert: 04.12.2003 21:05:09
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Neuss
Probier mal
path-name-list in der Manpage steht einfach nur für den Pfad (bzw. die Pfade), in dem (bzw. denen) gesucht wird.
Code: Alles auswählen
find /pfad -depth 0 -type f -exec ls -l {} \;
»Wenn Sie neu sind bei Unix, sollten Sie sich vielleicht ein paar Bücher kaufen und lesen.«
(gefunden im Debian-Installationshandbuch)
(gefunden im Debian-Installationshandbuch)
- blackstream
- Beiträge: 143
- Registriert: 04.12.2003 21:05:09
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Neuss
Sorry, habe die Manpage nicht ordentlich gelesen. -depth bekommt gar keine Zahl angegeben und bewirkt etwas anders, als ich es zuerst dachte. Vermutlich gibt es dann doch keine Möglichkeit.
»Wenn Sie neu sind bei Unix, sollten Sie sich vielleicht ein paar Bücher kaufen und lesen.«
(gefunden im Debian-Installationshandbuch)
(gefunden im Debian-Installationshandbuch)
- blackstream
- Beiträge: 143
- Registriert: 04.12.2003 21:05:09
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Neuss
Vielleicht gibt es doch noch eine Möglichkeit (mangels HP-UX allerdings ungetestet
):

Code: Alles auswählen
find /pfad ! -path /pfad/*/* -type f -exec ls -l {} \;
»Wenn Sie neu sind bei Unix, sollten Sie sich vielleicht ein paar Bücher kaufen und lesen.«
(gefunden im Debian-Installationshandbuch)
(gefunden im Debian-Installationshandbuch)
Mmh...
also irgendwie fehlt dem was:
Wenn ich das hier eingebe, wird zwar das Kommando abgesetzt, aber es werden auch wieder Unterverzeichnisse angezeigt:
Mache ich nur * nach dem -path /home/daniel/* kommt die obere Fehlermeldung.
also irgendwie fehlt dem was:
Code: Alles auswählen
daniel@debian:/home/daniel> find /home/daniel ! -path /home/daniel/*/* -type f -exec ls -l {} \;
find: missing conjunction
Code: Alles auswählen
daniel@debian:/home/daniel> find /home/daniel ! -path /home/daniel -type f -exec ls -l {} \;
Oh, yeah!
- blackstream
- Beiträge: 143
- Registriert: 04.12.2003 21:05:09
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Neuss

... aber nach einem Studium der findutils-Doku bin ich, glaube ich, etwas schlauer, und denke nun, dass der Ausdruck
Code: Alles auswählen
find /pfad/* -type d -prune -o -exec ls -l {} \;
»Wenn Sie neu sind bei Unix, sollten Sie sich vielleicht ein paar Bücher kaufen und lesen.«
(gefunden im Debian-Installationshandbuch)
(gefunden im Debian-Installationshandbuch)
Jo, danke.
So funktioniert es, und um es im aktuellen Verzeichnis auf alle Dateien anwenden zu können, funktioniert es so:
So funktioniert es, und um es im aktuellen Verzeichnis auf alle Dateien anwenden zu können, funktioniert es so:
Code: Alles auswählen
find . -type d -prune -a -type f -o -exec ls -l {} \;
Oh, yeah!
- blackstream
- Beiträge: 143
- Registriert: 04.12.2003 21:05:09
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Neuss
Nee, das funktioniert doch nicht so, wie es soll. Du siehst es, wenn Du aus dem ls -l ein ls -ld machst.
Eben unter Solaris (wo der find-Befehl keinen Parameter -path wie z.B. HP-UX kennt), habe ich mit folgendem Befehl das erhhoffte Ergebnis erzielt:
Eben unter Solaris (wo der find-Befehl keinen Parameter -path wie z.B. HP-UX kennt), habe ich mit folgendem Befehl das erhhoffte Ergebnis erzielt:
Code: Alles auswählen
find . \( -name '.?*' -prune -o -name '*' -prune \) -a -type d -o -type f -exec ls -ld {} \;
»Wenn Sie neu sind bei Unix, sollten Sie sich vielleicht ein paar Bücher kaufen und lesen.«
(gefunden im Debian-Installationshandbuch)
(gefunden im Debian-Installationshandbuch)