Linux lernen

So finden und listen Sie die Dateien in Linux rekursiv nach Datum auf

So finden und listen Sie die Dateien in Linux rekursiv nach Datum auf

Der Hauptgrund, warum die meisten Betriebssystembenutzer Linux anderen Betriebssystemen vorziehen, ist die Freiheit, sie zu erkunden. Unter Linux sind Sie an einige lose gekoppelte Betriebssystemregeln gebunden. Das Betriebssystem definiert einige veränderbare Standardregeln für die Verwendung in seiner Umgebung.

Sobald Sie den Anfängermantel abgelegt haben, können Sie diese Standardregeln verlassen und Ihre eigenen erstellen. Unter Linux ist das Betriebssystem Ihr treuer Diener und Sie der Meister.

Dieser Fall ist in anderen Betriebssystemdistributionen nicht praktikabel, da zu viele Abstraktionen vorhanden sind. Die Betriebssysteme hier sind eher deine Assistenten. Mehr Leistung als das Betriebssystem kann man nie haben, wie bei Linux. Während Sie Ihre Benutzererfahrung unter einer Linux-Betriebssystemumgebung weiterentwickeln, wächst Ihre Betriebssystem-Neugier täglich. Sie werden immer wissen wollen, was sich hier verbirgt und was Sie noch unter seinem Dach tun können.

Arbeiten mit Dateien und Verzeichnissen unter Linux

Ein perfektes Fallszenario ist Ihre tägliche Interaktion mit Dateien und Ordnern unter der Linux-Betriebssystemumgebung. Die Verwendung des Dateisystems des Linux-Betriebssystems umfasst mehr als nur das Erstellen, Bearbeiten, Ändern und Löschen der Benutzerdateisysteme und -ordner. Jede Aktion, die mit den Benutzerdateien und Ordnern/Verzeichnissen in einer Linux-Umgebung verknüpft ist, hinterlässt einen Benutzer-Fußabdruck oder Fingerabdruck. Es ist, als würde man einen Raum betreten, um Gegenstände zu berühren und auszutauschen.

Wenn ein Linux-Vermieter oder Hausmeister diesen von Ihnen betretenen Raum verwaltet, weiß er genau, was Sie getan haben und welche Gegenstände Sie berührt oder ausgetauscht haben. Linux hat nützliche Befehle, die uns helfen, solche Ergebnisse zu erzielen. Sie werden wissen, was mit den Dateien und Ordnern in Ihrem Linux-Betriebssystem passiert ist, und diese Aktionen anhand des Zeitpunkts identifizieren.

Kurz gesagt, beim Umgang mit Dateien und Verzeichnissen unter einer Linux-Betriebssystemumgebung können wir eine Ereigniszeitleiste erstellen, um anfällige Dateiänderungen durch Zeitstempel zu identifizieren, die an jede Änderung angehängt sind. Als Vorteil wissen Sie anhand der generierten Systemprotokolle, ob die Änderung mit schädlichen Inhalten verbunden war.

Die zu verwendenden Linux-Befehle

Wir werden einige einfache Befehle weiterleiten, die uns helfen, die objektivierte Bedeutung dieses Artikels zu verstehen. Sie müssen zuerst Ihr Terminal starten und einen Systempfad navigieren, von dem Sie wissen, dass er viele Dateien und Ordnerverzeichnisse enthält. Um sicher zu sein und nicht mit Ihren anfälligen Systemdateien herumzuspielen, könnten Sie Ihr „Dokumente“-Verzeichnis verwenden, das normalerweise im Linux-Betriebssystem vordefiniert ist. Der folgende Befehl sollte Sie zu diesem „Dokumente“-Verzeichnis führen.

$ cd ~/Dokumente

Es ist ein beliebtes Verzeichnis mit vielen Dateien und Unterverzeichnissen. Ein weiteres Verzeichnis für dieses Artikelexperiment ist das Verzeichnis „Downloads“. Es ist ein Ort, an dem Sie heruntergeladene Dateien und andere Unterverzeichnisse nie verpassen werden.

$ cd ~/Downloads

Um dieses Experiment zu starten, benötigen wir einige zuordenbare Beispielausgaben von unserem Terminal. Wir geben eine Befehlszeichenfolge auf unserem Terminal ein, die es uns ermöglicht, aktive Dateien und ihre zugehörigen Unterverzeichnisse aufzulisten. Außerdem wird jedes Element der resultierenden Ausgabe dieses Befehls mit einem Zeitstempel verknüpft, der auf den letzten Änderungsversuch der zugehörigen Datei, des Verzeichnisses oder Unterverzeichnisses zeigt.

Die zu verwendende Befehlszeichenfolge lautet wie folgt:

$ finden . -printf '%T@ %t %p\n' | sortieren -k 1 -n | Schnitt -d"-f2-

Der Screenshot unten ist die Ausgabe für die Verwendung der obigen Befehlszeichenfolge.

Beispielausgabe für die Verwendung des Befehls find, sort und cut

Aus analytischer Sicht stellt der untere Bildschirm der Befehlsausgabe die kürzlich geänderten Elemente in Ihrem übergeordneten Arbeitsverzeichnis dar. Die Ausgabeliste kann lang sein, abhängig von den Dateien und Ordnern, die Sie auf Ihrem Computer haben. Wenn Sie auf dem Ausgabeterminal nach oben scrollen, werden ältere Dateien und Ordneränderungen angezeigt. Zusammenfassend haben wir eine Ausgabe, die die ältesten Dateien und Ordneränderungen zu den neuesten Änderungen einordnet.

Wie Sie bemerkt haben, hat die obige Befehlszeichenfolge, die Sie in Ihr Terminal eingefügt haben, drei wichtige Befehlsargumente. Wir müssen verstehen, was jeder von ihnen tut.

Finden

Der Befehl „find“ ist der erste, der aus der Befehlszeichenfolge ausgeführt wird. Es hat das einzige Ziel, die aktiven Dateien und Verzeichnisse in Ihrem übergeordneten Arbeitsverzeichnis rekursiv aufzulisten. Das ".”-Argument, das dem „find“-Argument folgt, verweist diesen Befehl auf das aktuelle Arbeitsverzeichnis. Wenn Sie sich nicht sicher sind, in welchem ​​Verzeichnis Sie sich befinden; Sie können den Befehl „pwd“ auf Ihrem Terminal eingeben. Es druckt den Pfad zu dem Verzeichnis aus, in dem Sie sich gerade befinden.

Das ".” Argument wird als Ausgabe des Befehls “pwd” übersetzt translated. Es erleichtert das Auffinden der Dateien und Verzeichnisse Ihres aktuellen Arbeitsverzeichnisses. Das nächste Argument in der Befehlszeichenfolge ist „-printf“. Es ist ein Flag für ein Druckargument. Es druckt die Dateien und Verzeichnisse in Ihrem aktuellen Arbeitsverzeichnis in einem bestimmten Format. Das Format wird durch das Argument „%T@%t%p\n“ angegeben. Es ist das Befehlsargument, das unmittelbar darauf folgt.

Der '%T@'-Teil dieses Arguments repräsentiert die Epochenzeit. Epochenzeit oder Unix-Epoche ist per Definition der Zeitstempel am 1. Januar 1970. Es wird als 00:00:00 UTC . dargestellt. Die Ausgabe auf Ihrem Terminal nimmt dieses Format an, um die Änderungsdaten darzustellen, die mit den aufgelisteten Dateien und Verzeichnissen verknüpft sind. Der '%t'-Teil des Arguments nimmt jetzt das Epochenzeitformat an, um den letzten Änderungszeitstempel anzuzeigen, der mit den aufgelisteten Dateien und Verzeichnissen verknüpft ist.

Abhängig von Ihrer Linux-Distribution oder -Variante zeigt die Terminalausgabe möglicherweise nicht die Epochenzeit an, die mit der Ausgabeliste der geänderten Dateien verknüpft ist. Diese Aussage ist ein Beweis für die Ausgabe von meinem Ende.

Der '%p'-Teil des Arguments gibt die Namen der angezeigten Dateien in diesem aktuellen Arbeitsverzeichnis aus. Schließlich dient der '/n'-Teil des Arguments als Zeilenumbruchzeichen. Nach jeder aufeinanderfolgenden Auflistung einer geänderten Datei nimmt dieses Newline-Zeichen den Anzeigecursor und überspringt die nächste Dateianzeige in eine neue Zeile auf dem Terminalbildschirm. Es erleichtert uns, jede angezeigte Datei anders zuzuordnen.

Ein anderer Ansatz zum Arbeiten mit der zuvor angegebenen Befehlszeichenfolge besteht darin, den '%t'-Teil des "%T@%t%p\n"-Arguments durch '%c' zu ersetzen. Die resultierende Befehlszeichenfolge sollte wie folgt aussehen:

$ finden . -printf '%T@ %c %p\n' | sortieren -k 1 -n | Schnitt -d"-f2-

Die Ausgabe dieser Befehlszeichenfolge sollte eine Ausgabe ähnlich dem folgenden Screenshot erzeugen.

Ändern von Argumenten beim Befehl "Datei rekursiv suchen"

Beim Betrachten des obigen Screenshots wird die folgende Beobachtung deutlich:. Die Ausgabeliste der Dateien auf dem aktuellen Arbeitsverzeichnis wird mit einer „letzten Statusänderungszeit“ anstelle der „Änderungszeit“ angezeigt. Dies ist der Effekt des Ersetzens von '%c' durch '%t' in „%T@%t%p\n“. Dieser letzte Befehl druckt Berechtigungsänderungen aus, die mit der ausgegebenen Dateiliste verbunden sind. Der Inhalt der Dateien ändert sich möglicherweise nicht, die damit verbundenen Metadaten jedoch.

Zu diesem Zeitpunkt folgen die Ausgabeergebnisse keiner chronologischen Reihenfolge, da wir uns noch mit dem Sortierbefehl befassen müssen. Zuerst wird der Änderungszeitstempel gedruckt, gefolgt vom Namen der zugehörigen Datei.

Sortieren

Dieses Befehlsargument hat drei Parameter, nämlich '-k', '1' und 'n'. Der Sortierbefehl ist für die Reihenfolge verantwortlich, in der die Dateilistenausgabe auf unseren Bildschirmen angezeigt wird. In diesem Fall wird zuerst das Änderungsdatum gedruckt, gefolgt vom Dateipfad zur geänderten Datei oder zum geänderten Verzeichnis. Der '-k'-Teil dieses Befehlsarguments gibt die Startposition an, um den Sortierprozess zu beginnen.

Der '-k'-Teil des Sortierbefehlsarguments besitzt eine Frage, die durch den '1'-Teil desselben Arguments beantwortet wird. In diesem Fall beginnt der Sortiervorgang mit der ersten Spalte, die durch '1' angezeigt wird. Das Sortierbefehlsargument ist auch dafür verantwortlich, dass die neueste geänderte Datei ganz unten in der Liste steht und die älteste ganz oben. Der '-n'-Teil des Arguments ist für die numerische Zeit mit Dezimalpunktgenauigkeit verantwortlich.

Wenn Sie '-nr' anstelle von '-n' verwenden, hat die Ausgabe der Befehlszeichenfolge die neu geänderten Dateien und Verzeichnisse über der Terminalausgabe und die alten Dateiänderungen unten at. Es kehrt die Sortierreihenfolge der Terminalausgabe um.

Schnitt

Der Hauptzweck des Befehlsarguments „cut“ besteht darin, die Ausgabe unseres Terminalausdrucks aufgeräumt zu organisieren. Die Optionen '-d' und" dieses Befehlsarguments werden kombiniert, um Leerräume zu generieren und dann den Ausdruck der Dateiinhaltsdetails abzuschneiden, der versuchen könnte, diesen Leerräumen nachzufolgen.

Mit dieser einfachen Befehlszeichenfolge können Sie die Dateien in Ihrem aktuellen Arbeitsverzeichnis rekursiv drucken, wobei jede Ausgabe die besagten Dateien mit ihrem Änderungsdatum verknüpft.

Alternative Befehlsoptionen

Sie könnten argumentieren, dass der Befehl „ls -lrt“ alle Dateien in einem Active Directory-Pfad Ihres Linux-Betriebssystems perfekt auflistet, von den ältesten zu ändern bis zu den neuesten new. Andererseits berücksichtigt dieser Befehl nicht die Dateiinhalte, die in Unterordnern vorhanden sind. Wenn das Auflisten von Unterverzeichnissen nicht Ihr Ziel ist, können Sie das Argument „-type f“ zur Befehlszeichenfolge hinzufügen. Betrachten Sie die folgende Modifikation des Befehls.

$ finden . -Typ f -printf '%T@ %t %p\n' | sortieren -k 1 -n | Schnitt -d"-f2-

Die Verwendung des Befehlsarguments „-type d“ hat einen gegenteiligen Effekt wie der obige Befehl. Ihr Terminal gibt nur geänderte Verzeichnisse vom ältesten zum neuesten aus. Betrachten Sie seine Implikation wie folgt:

$ finden . -Typ d -printf '%T@ %t %p\n' | sortieren -k 1 -n | Schnitt -d"-f2-

Schlussbemerkung

Sie sind jetzt mit der exemplarischen Vorgehensweise zum rekursiven Drucken von Dateien und Verzeichnissen in Ihrem aktuellen Arbeitsverzeichnis vertraut und wissen zusätzlich, wann sie basierend auf den zugehörigen Zeitstempeln zuletzt geändert wurden.

Mit diesem Wissen haben Sie die Möglichkeit, eine Zeitleiste von Ereignissen zusammenzustellen, die chronologisch die Reihenfolge der Änderungen von Dateien und Verzeichnissen zusammen mit dem Pfad zu ihrem Speicherort anzeigt.

Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...
Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...
Mit WinMouse können Sie die Mauszeigerbewegung auf einem Windows-PC anpassen und verbessern improve
Wenn Sie die Standardfunktionen Ihres Mauszeigers verbessern möchten, verwenden Sie Freeware WinMouse. Es fügt weitere Funktionen hinzu, damit Sie das...