So finden Sie in Linux schnell Dateien

, Stand: 27.11.2014  Tipp druckenDrucken Symbol Kommentare 17 Kommentare

Bei Linux passiert viel auf der Kommandozeile - auch die Dateisuche ist hier bestens aufgehoben. Sie haben die Wahl, ob Sie ganz einfach mit locate Dateien aufspüren oder besonders flexibel mit der Hilfe von find. Wir haben in diesem Beitrag für Sie Suchtipps zusammen getragen.

Inhaltsverzeichnis:

So finden Sie in Linux schnell Dateien über ihren Namen

Gerade Linux-Umsteigern von der Windows-Welt fällt es oft schwer, sich an Namen und Ort einer bestimmten Konfigurations-Datei oder eines Kommandos unter Linux zu erinnern.

Dagegen hilft ein praktisches Suchsystem, das alle Linux-Varianten kennen.

Dateien suchen auf die Schnelle

Das Kommando locate findet alle Dateien, die die genannte Zeichenfolge im Pfad oder dem Dateinamen selbst haben. Dabei kommt es auf die korrekte Groß-/Kleinschreibung nicht an, wenn Sie locate mit dem Parameter -i wie "ignore case" starten.

Wollen Sie beispielsweise alle Fundstellen für eine Ini-Datei der Skriptsprache PHP ausgeben lassen, geben Sie ein

locate -i php.ini

Das geht ziemlich schnell, weil die Suche nicht live im Dateisystem, sondern in einer Datenbank erfolgt, die vom System automatisch in der Nacht upgedatet werden sollte.

Passiert das nicht von selbst, dann können Sie diese Datenbank mitdem Kommando updatedb selbst anlegen lassen.

Wenn locate einen Fehler bringt

In diesem Fall ist sehr wahrscheinlich einfach nur das Programmpaket nicht installiert, das locate beinhaltet.

Auf einem Debian-System installieren Sie es mit folgendem Kommando nach und füllen die Datenbank:

sudo apt-get install locate
sudo updatedb

Linux: Große Dateien finden

Da ich oft unter Platzmangel auf meiner Platte leide wollte ich mal alle "großen" Dateien finden und gegebenenfalls löschen. Der Befehl

ls -lahS $(find / -type f -size +10000k)

findet alle Dateien die größer sind als 10MByte und listet sie der Größe nach auf.

Dabei sorgt der Befehl ls -lahS für das Auflisten der Dateien. Die Dateien werden mit l im langen Format ausgegeben. Der Parameter a zeigt alle Dateien, auch die versteckten. Dank h erscheinen alle Größenangaben in gut lesbarem Format.

Mit $ wird das Ergebnis des nachfolgenden Befehls als Parameter an ls übergeben. Sprich, es erscheinen nur Dateien, die größer sind als 10.000 Kilobyte.

Hinweis: Wenn Sie den Befehl nicht als root ausführen, werden Sie einige Male Permission denied zu lesen bekommen.

Diesen Tipp sandte uns unser Leser Fabian Mohren. Vielen Dank

So unterdrücken Sie die Fehler des Kommandos find

Wer in Linux als normaler User mit find sucht, bekommt häufig Meldungen dass der Zugriff auf bestimmte Objekte nicht erlaubt ist.

Der Grund: Im Linux-Filesystem stecken nicht nur normale Dateien und Ordner, sondern auch Geräte und spezielle Steuerdateien. Versucht das Programm find diese zu durchzuarbeiten, verweigert das Betriebssystem den Zugriff.

Linux Fehler bei find

Einfaches Abwürgen von Meldungen

Um diese Meldungen zu unterdrücken, suchen Sie mit

find / -name *.bla 2> /dev/null

Damit werden die Fehlermeldungen ins Nirvana geschrieben und Sie haben mehr Überblick mit find.

Filter setzen

Eine elegantere Möglichkeit ist, wenn Sie find anweisen, nur reguläre Dateien zu behandeln. Dann sieht obiges Beispiel so aus:

find / -type f -name *.bla

Dann kommt nur noch in den Fällen ein "Permission denied", wo der aktuelle Benutzer keine Leserechte hat.

Alternative über locate

Bei einem großen Dateisystem kann find schon einige Zeit mit der Suche beschäftigt sein.

Eine Abhilfe stellt dabei der Befehl locate dar, der nicht den gesamten Festplatteninhalt durchforstet, sondern sich eine Datenbank anlegt, worin blitzschnelle Suchen möglich sind. Mehr dazu lesen Sie im Tipp So finden Sie in Linux schnell Dateien über ihren Namen.

Linux: Dateien nach Datum finden

Man kann von Linux halten was man will. Aber in Sachen Kommandozeile und Tools steckt das System Windows allemal in die Tasche.

Ein Beweis dafür ist find, ein Utility, komplex genug, um darüber ein vierbändiges Werk zu schreiben. Wie wäre es zum Beispiel, mit find alle Dateien in einem Verzeichnis zu suchen, die innerhalb der letzten 24 Stunden erzeugt wurden?

Schreiben Sie diese Befehlszeile:

find . -name '*.doc' -type f -mtime -1

Der Befehl sucht danach im aktuellen Verzeichnis (das ist der Punkt) und dessen Unterverzeichnissen nach allen Dateien mit der Endung *.doc, die weniger als einen Tag alt sind.

Zuständig für diese Altersfragen ist der Parameter -mtime. Die Zahl dahinter steht für Tage, also -mtime -1 für den zurück liegenden Tag, sprich die letzten 24 Stunden.

Abhängig vom Vorzeichen steuern Sie die Tage. Schreiben Sie zum Beispiel

find . -name '*.doc' -type f -mtime +1

und heraus kommen alle Dateien und Verzeichnisse, die älter als einen Tag sind.

Steht die Zahl ohne Vorzeichen da, sucht Find Dateien, welche die angegebenen Tage plus einen alt sind. Mit -mtime 5 sucht find also alle Files, die zwischen fünf und sechs Tagen auf dem Buckel haben.

Mehr zum Thema

Kommentare 0 bis 5 von 17 Kommentaren   >>

@Fat_Angel: Setze die Ausgabe von find in Anführungszeichen: ls -lahS
"$(find / -type f -size +10000k)". Damit sind Leerzeichen und
Sonderzeichen in Dateinamen kein Problem.
[dan | 20.08.2014] Antworten

Vielen Dank
[Michael | 21.06.2014] Antworten

Wenn der Dateiname aus mehreren Wörtern besteht, liefert die
ls-Ausgabe vom eine Fehlermeldung
[Fat_Angel | 27.04.2014] Antworten

Ist -mtime nicht für modifizierte Dateien und -ctime für erzeugte?
[Mucks | 01.03.2013] Antworten

Also mit find findet man nichts. Egal was ich suche es gibt kein
Ergebnis. Auch wenn ich sicher bin das die Datei da ist.
[SemperTalis | 28.02.2013] Antworten

Kommentare 0 bis 5 von 17 Kommentaren   >>

Ihr Kommentar:


Name:



Aktualisiert am: 27.11.2014

 
vmware linux ubuntu deutsche tastatur

Mehr dazu:

So stellen Sie Ubuntu auf ein deutschsprachiges Keyboard um

Weiterlesen...

Nicht das passende gefunden?

Vielleicht helfen Ihnen dann diese Tipps weiter:

Textdateien in Linux nach UTF-8 konvertieren
linux dateien in utf-8 konvertieren

Lesen Sie, wie Sie eine oder mehrere Dateien von einem Zeichensatz in einen anderen wandeln.

Linux Eingabezeile: Nur Verzeichnisse anzeigen

Linux und sein Befehl ls unterscheiden nicht zwischen Dateien und Verzeichnissen. Wenn Sie dennoch nur Verzeichnisse auflisten wollen, verwenden [...]

Linux schnell herunterfahren

Mit einem einfachen Befehl können Sie Ihr Linux herunterfahren und anhalten: halt. Tippscout sagt, wie der Befehl funktioniert.