Main /

Dateien Wiederfinden

Allgemein

Knowledge Base

Virtualisierung Emulation

Technik und Wissen

Community

Privat

%center%[[http://validator.w3.org/check?uri=referer|http://www.w3.org/Icons/valid-xhtml10.png]]%%

Dateien Wiederfinden

Suchen und finden von Dateien

Unter Linux eine Datei zu finden ist eigentlich ganz einfach:

 find . -name <Datei> -print

Wobei die Parameter folgende Bedeutung haben:
finden

  • (von wo) Der Punkt '.' steht für current directory, also von wo ich gerade bin
  • (was) '-name' was ich gerade suche hier der Name, andere sind -type, -mtime, ... .
  • (nach ...) '-print' ist für die Ausgabe nach.

Leider ist die Suche case-sensitive, das heißt Groß- und Kleinschreibung ist hier nicht egal.

 find . -iname <Datei> -print

Ist das case-insensitive pedant.
Kennt man allerdings nur noch Bruchstücke des Namens hilft folgendes:

 find . -iname '*teilstring*' -print

Dabei ist es ganz wichtig, das der teilstring in einfache Hochkommas sog. quotes gesetzt wird, sonst schlägt die Shell hier zu und ergänzt den teilstring schon mal. Sonst ganz nett, hier aber absolut hinderlich. Ein '*' Asterix besagt hier, beliebig viele Zeichen.

Beispielchen mit find

Um allen Dateien andere Rechte zu geben

 find . -type f -exec chmod g+r {} \;

Um allen Directories die Leserechte für Fremde ('o') zu nehmen

 find . -type d -exec chmod o-x {} \;

Alle Dateien, die älter sind als 5 Tage

 find . -mtime +5 -print

Alle Dateien, die genau 5 Tage alt sind

 find . -mtime 5 -print

Alle Dateien, die jünger als 5 Tage alt sind

 find . -mtime -4 -print

Alle Dateien, die älter sind als 5 Tage, wir wollen aber nur das 1. Directory sehen

 find . -maxdepth 1 -mtime +5 -print

Sucht alle 'jpg', 'gif' und 'png' Bilder und speichert diese in /tmp/allpictures, liegen die Bilder in Unterverzeichnissen, werden diese mit angelegt.

 find . \( -iname '*.jpg' -o -iname '*.gif' -o -iname '*.png' \) -exec cp --parents {} /tmp/allpictures \;

to be continued...

Schneller mit slocate

Wer das schon mal auf Platten jenseits von 10GB gemacht hat, wird feststellen, das es schon eine gewisse Zeit braucht, um die Datei(en) auch zu finden.

Dafür gibt es unter Unix ein extra Programm, slocate was hilft Dateien schneller zu finden, da alle Dateien schon mal irgendwann gesucht und indiziert wurden. In man slocate findet man mehr.

Leider ist die Syntax nicht ganz ähnlich, weshalb diese Zeilen auch entstanden sind.

 slocate -r '.*teilstring.*\.jar'

listet alle Dateien die einen teilstring enthalten und auf .jar enden. Auch hier wieder quotes allerdings ist hier der '.' ein beliebiges Zeichen und ein '*' Asterix sagt 0 oder ganz viele davon. Mehr zu regulären Ausdrücken natürlich im Wiki, aber diesmal auf englisch.

Zu welchem Portage Package gehört eine Datei

Es wird gerne mal versucht ein Package zu finden, das eine bestimmte Datei enthält.

 equery belongs <bestimmte Datei>

Einziger Nachteil, das Package muss bereits installiert sein, desweiteren muss das app-portage/gentoolkit installiert sein, was aber durch emerge gentoolkit mal eben installiert werden kann.

Portage File List Query en findet alle Dateien mit dem angegebenen Namen und listet diese auf, so findet man dann auch Packages ohne diese installiert zu haben.

Verwandte Themen

Links

Frische Änderungen | Menü editieren Seite wurde zuletzt geändert am 09.07.2008 14:06 Uhr von Lars
Diese Seite wurde bisher 849 mal aufgerufen.
Seite Bearbeiten | Seitenhistorie

Powered by PmWiki
Page generated in 0,916 seconds.