Dateien/Ordner suchen, die nicht uid/gid haben.

Lesenswerte Artikel, Anleitungen und Diskussionen
wayne
Posts: 10
Joined: 2006-10-15 01:22

Dateien/Ordner suchen, die nicht uid/gid haben.

Post by wayne » 2007-05-29 16:55

Moin,
ich brauche für ein kleines Perl-Script eine Möglichkeit, rekursiv die Pfade aller Dateien aufzulisten, deren uid/gid nicht mit übergebenen Werten übereinstimen.

Also praktisch eine Umkehrung von:

Code: Select all

find $dir -uid $uid -gid $gid
Evtl. bin ich ja auch von Blindheit geplagt, aber auf der manpage von find kann ich keine Option zum umkehren der Ergebnisse finden (sowas wie grep -v).
Hat jemand vielleicht eine einfache Variante für mich parat?

Danke für alle Hinweise :)

elch_mg
Posts: 302
Joined: 2006-01-23 19:14
Location: 41063

Re: Dateien/Ordner suchen, die nicht uid/gid haben.

Post by elch_mg » 2007-05-29 17:58

lies mal den Abschnitt "Operatoren" ;)

Code: Select all

find $dir ! -uid $uid -gid $gid
könnte klappen.

oxygen
RSAC
Posts: 2179
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Dateien/Ordner suchen, die nicht uid/gid haben.

Post by oxygen » 2007-05-29 18:00

find ... -uid ... -gid ... > file1
find ... > file2
diff file2 file1 | grep "<" | awk '{print $2}'

wayne
Posts: 10
Joined: 2006-10-15 01:22

Re: Dateien/Ordner suchen, die nicht uid/gid haben.

Post by wayne » 2007-05-29 19:18

@elch_mg
Danke, war wirklich die Blindheit. Dein Vorschlag hat nicht ganz geklappt, aber mit ein bisschen Spielerei bin ich auf diese Löung gekommen (die ich für alle nachfolgenden Generationen, die der Suchfunktion mächtig sind, festhalten möchte):

Code: Select all

find $dir ! -uid $uid -o ! -gid $gid
Der !-Operator muss für jeden Test angegeben werden (eigentlich logisch) und das -o ist ein OR-Operator. Ohne diesen müssten sowohl uid als auch gid falsch sein (kann ja aber auch mal sein, dass nur einer falsch ist).

Vielen Dank, jetzt bin ich glücklich :D


@oxygen
Joa, auf sowas bin ich natürlich auch gekommen, wollte ich aber möglichst vermeiden, da ich einfach davon ausgegangen bin, dass es Lösung mit weniger Overhead geben muss (und die gibt's ja auch).
Natürlich trotzdem Danke ;)