GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So suchen Sie Dateien im Terminal unter Linux

Während es viele Möglichkeiten gibt, wie wir Dateien und Verzeichnisse unter Linux suchen und finden können, ist die einfachste und schnellste wahrscheinlich über das Terminal. Das wissen jedoch nicht viele Linux-Benutzer, was zu unnötiger Frustration führt. Hier ist eine Kurzanleitung, die Ihnen hoffentlich dabei helfen wird, das Gesuchte in Ihrem System zu finden.

Verwenden Sie den Locate-Befehl

Die Datei „lokalisieren ”-Befehl ist der erste Ausweg, den ein Linux-Benutzer verwenden sollte, weil er viel schneller ist als alles andere da draußen. Der Grund für diese unübertroffene Geschwindigkeit ist, dass der locate-Befehl nicht wirklich Ihre lokalen Festplatten nach den Dateien oder Verzeichnissen durchsucht, die Sie finden müssen, sondern eher die Datenbankdatei mlocate.db durchliest, die alle Dateipfade in Ihrem System enthält .

Wenn Sie locate noch nicht installiert haben, verwenden Sie diese Befehle:

Debian und Ubuntu

sudo apt-get install locate

CentOS

yum install locate

Vorbereiten des Lokalisierungsbefehls für die erste Verwendung

Um die mlocate.db-Datenbank vor der ersten Verwendung zu aktualisieren, führen Sie Folgendes aus:

sudo updatedb

Öffnen Sie zur Verwendung von locate ein Terminal und geben Sie locate gefolgt von dem Dateinamen ein, nach dem Sie suchen. In diesem Beispiel suche ich nach Dateien, die das Wort „sunny“ in ihrem Namen enthalten.

locate sunny

Locate kann Ihnen auch mitteilen, wie oft ein Suchschlüsselwort in der Datenbank gefunden wird. Dies wird erreicht, indem ein „-c“-Parameter in den Befehl aufgenommen wird, der für „count“ steht.

locate -c sunny

Was Benutzer hier beachten müssen, ist, dass „locate“ im Gegensatz zu anderen flexibleren Tools den spezifischen und genauen Namen der gesuchten Datei benötigt. Das bedeutet, dass locate großartig ist, um etwas zu finden, dessen Namen Sie sicher kennen, aber nicht so gut, wenn Sie sich nicht genau an den Dateinamen erinnern.

locate howtoforge

gegen

locate Howtoforge

Außerdem und seit „locate “ eine Datenbankdatei liest, sind die Ergebnisse möglicherweise veraltet und nicht ganz richtig. Um dieses Problem zu beheben, können Sie Ihre Dateipfaddatenbank aktualisieren, indem Sie „sudo updatedb eingeben ” in einer Terminalsitzung.

Sehen Sie sich hier weitere Beispiele für die Verwendung des Suchbefehls an.

Wenn Sie danach immer noch nicht das bekommen, wonach Sie gesucht haben, oder einfach von der Anzahl der Ergebnisse überwältigt sind, fahren Sie mit dem nächsten Schritt fort, dem Befehl „Suchen“.

Verwenden Sie den Find-Befehl

Die Datei „finden “-Befehl ist ein viel leistungsfähigeres, aber auch langsameres Suchdienstprogramm. Dies liegt daran, dass „find“ im Gegensatz zum Befehl „locate“ tatsächlich Ihre Festplatten nach den Dateien und Verzeichnissen durchsucht, die der Benutzer sucht. Suchen ist perfekt, wenn Sie versuchen, eine Datei oder ein Verzeichnis zu finden, sich aber nicht an den Namen erinnern können, da „Suchen“ nach Dateien suchen kann, die einem bestimmten Benutzer oder einer Benutzergruppe gehören, Dateien, die geändert wurden oder auf die zugegriffen wurde neuerdings Dateien mit einem bestimmten Größenbereich, versteckte Dateien, ausführbare Dateien, schreibgeschützte Dateien und Dateien mit bestimmten Berechtigungen. Das Beste daran ist, dass ein Benutzer mehrere der oben genannten Kriterien in einem „Find“-Befehl kombinieren kann, wodurch die Ergebnisse im Wesentlichen eingegrenzt werden.

Apropos Eingrenzen, das erste, was Sie tun möchten, wenn Sie „find“ ausführen, ist, es anzuweisen, in einem bestimmten Verzeichnis zu suchen. Dies beschleunigt den Suchvorgang erheblich, hängt jedoch immer von der Größe des Verzeichnisses ab. Wenn Sie wissen, wo sich die Datei befinden könnte, öffnen Sie das Terminal, navigieren Sie zum Verzeichnis und führen Sie „find . [Dateiname] “. Dieser Punkt weist find an, im aktuellen Verzeichnis zu suchen. Wenn Sie stattdessen Ihr Home-Verzeichnis durchsuchen möchten, ersetzen Sie den Punkt durch „~/“, und wenn Sie Ihr gesamtes Dateisystem durchsuchen möchten, verwenden Sie stattdessen „/“.

Als Beispiel möchte ich in meinem Download-Verzeichnis nach einer Datei suchen, die ein Poster enthält. Ich weiß, dass der Dateiname das Wort „Poster“ enthält, aber ich erinnere mich nicht genau an den Namen. Aus diesem Grund würde ich über das Terminal mit „cd Downloads“ zu meinem Download-Ordner navigieren und dann den Befehl eingeben:

sudo find . -name "*poster*"

Hier ist das Ergebnis:

Dies sagt mir, dass es eine PDF-Datei mit dem Namen „billy_poster copy“ im Download-Ordner gibt. Wenn ich nicht wüsste, wo es sich befindet, würde „find“ mich trotzdem wissen lassen, dass es sich im Ordner „Downloads“ befindet, wenn ich in einem übergeordneten Verzeichnis gesucht habe.

Wenn ich jetzt den Parameter „-name“ durch „-iname“ ersetze, könnte ich Ergebnisse ohne Rücksicht auf Groß- und Kleinschreibung erhalten. Das ist etwas, das in „locate“ nicht vorhanden ist, also ein weiteres hilfreiches Element, wenn Sie sich über den Dateinamen nicht sicher sind.

sudo find . -iname "*poster*"

Nehmen wir nun an, ich suche immer noch nach derselben Posterdatei und das Einzige, woran ich mich erinnere, ist, dass sie weniger als 5 MB groß ist. Der Befehl, den ich in diesem Fall verwenden würde, lautet:

find ~/ -size -5M

Wenn ich wüsste, dass es größer als sagen wir 2 MB ist, würde der Befehl „find ~/ -size +2M“ lauten. Das Beste daran ist, dass find boolesche Operatoren unterstützt, um die Suche noch stärker zu machen. Für dieses Beispiel werde ich einen Befehl verwenden, der mein Wissen kombiniert, dass die Datei weniger als 5 Megabyte groß ist, und auch mehr als 2. Der Befehl dafür wäre:

find / -size -5M -and -size +2M

Lassen Sie uns zuletzt vorschlagen, dass wir uns an nichts über die Datei erinnern, aber wir erinnern uns, dass wir vor drei Minuten darauf zugegriffen haben. Um es zu finden, verwenden Sie den Suchbefehl als:

find / -amin -3

Dies wäre „find / -amin -30“ für eine halbe Stunde und „-amin -120“ für zwei Stunden usw. Wenn Sie vor zwei Tagen auf die Datei zugegriffen haben, verwenden Sie stattdessen Folgendes:

find / -time -2

Dadurch werden alle Dateien angezeigt, auf die in den letzten zwei Tagen am Suchort zugegriffen wurde.

Ich denke, das Obige deckt die meisten üblichen Anwendungsszenarien ab. Um weitere Informationen über den leistungsstarken Befehl „find“ zu erhalten, öffnen Sie ein Terminal und geben Sie „man find“ ein. Viel Glück beim Finden, wonach Sie suchen.

Weitere Beispiele für den Linux-Suchbefehl finden Sie hier.


Linux
  1. So installieren Sie Software über die Linux-Befehlszeile

  2. So durchsuchen Sie das Web vom Terminal unter Linux

  3. Suchen Sie schnell nach Dateien in Linux mit dem Locate-Befehl

  4. Wie verwende ich den Rsync-Befehl unter Linux?

  5. Migrieren eines Linux-Servers über die Befehlszeile

So suchen Sie nach Dateien über die Linux-Befehlszeile

Linux-Dateiverwaltung über das Terminal

So verwalten Sie Dateien vom Linux-Terminal aus

So finden Sie Dateien mit dem fd-Befehl in Linux

So öffnen Sie eine URL im Webbrowser vom Linux-Terminal aus

So verbinden Sie sich vom Terminal in Ubuntu Linux mit WLAN