Manchmal müssen wir entsprechend unseren Anforderungen alle Dateien und Verzeichnisse in einem bestimmten Ordner durchziehen und durchlaufen. Nehmen wir an, wir möchten in jedem Ordner und der Datei eines Verzeichnisses einen bestimmten Befehl ausführen. Zu diesem Zweck werden wir alle Verzeichnisse mit Schleifen durchführen. Nur wenige CLI -Dienstprogramme oder Befehlszeilen -Dienstprogramme ermöglichen es uns, denselben Befehl für mehrere Dateien auszuführen. In unserem Fall verwenden wir jedoch Bash -Shell -Skript- und für die Schleife, um jeden Befehl zu beschleunigen, den wir zur effizienten Arbeit machen möchten.
Nicht nur in unserem Fall, sondern auch in der gesamten Programmierung ist ein sehr effizienter und leistungsfähiger Ansatz und Praxis. Aufgrund der Schleife können wir dasselbe Konzept auf mehrere Dateien und eine Gruppe von Elementen unter Verwendung der Mindestmenge an Code anwenden, um unsere gewünschte Ausgabe zu erhalten. Um Verzeichnisse und Dateien in Bash zu durchlaufen, verwenden wir ein globales Muster mit dem Namen „Wild Card“, das ein Standardmuster ist, das alle Dateien entspricht. Aber wir werden nur Verzeichnisse übereinstimmen, indem wir am Ende unseres Befehls "/" verwenden. Danach weisen wir jedem Verzeichnis den Wert des verfügbaren 'Dir' -Verzeichnisses zu. Schließlich werden wir den Echo -Befehl verwenden, damit die Schleife die Verzeichnisse durchläuft. Technisch gesehen müssen wir zuerst eine Variable initialisieren, um den Datensatz der Variablen zuzuweisen, die wir durchlaufen möchten. In unserem Fall fahren es mit dem '*' Wild Card -Charakter durch die Verzeichnisse durch.
Syntax:
Unten finden Sie die Syntax, die durch die Verzeichnisse schleifen,.
für f in/order/* order/**/*; Tun
Anweisung
Erledigt;
Darin verwenden wir die für Schleife zusammen mit der „F“ -Variable, die erstellt wird. Es definiert die Maßnahme, die jedes Mal ausgeführt werden soll. Nachdem wir den Datensatz definiert haben, aus dem er durchgehen wird. In unserem Fall haben wir zwei Pfade mit dem Namen "Ordner" übergeben, das "/order/*" holt die Dateien im Ordner ab, während "Ordner/**/*" die Dateien von den Unterordnern abruft.
Beispiel Nr. 1:
Wir werden die Methode des Schleifens durch die Verzeichnisse oder Dateien versuchen, um eine bessere Vorstellung von ihrer Arbeit zu haben. Lassen Sie uns zunächst nach der Version des Bash, die wir gerade haben, suchen, da die Version aktualisiert werden sollte, um die Schleife zu verwenden. Um die Version von Bash zu überprüfen, werden wir den Befehl ausführen:
linux@linux -virtualbox: ~ $ bash -Verssion
Es wird die Version des Bash angezeigt, die derzeit in unserem System ausgeführt wird, wie unten gezeigt, in unserem System ist es „5).0,17 ”.
Um die Schleife durchzuführen, werden wir zunächst ein neues Verzeichnis in unserem System erstellen, in dem wir einige Dateien hinzufügen werden. Um ein neues Verzeichnis zu erstellen, werden wir den Befehl ausführen:
linux@linux-virtualBox: ~ $ mkdir Linux
Nach dem Ausführen des obigen Befehls wird es nichts ausführen. Es wird Ihnen einfach nur das Terminal übergeben, um weitere Befehle auszuführen, wie wir unten sehen können.
Um zu überprüfen, ob unser Verzeichnis erfolgreich erstellt wird oder nicht, werden wir zu den Dateien in unserem System wechseln und uns dann in das Home -Verzeichnis bewegen, sehen Sie den Ordner "Linux" erstellt sehen. Eine Frage kann in Ihrem Kopf auftreten, warum wir nach dem Ordner im Heimverzeichnis suchen? Dies liegt nur daran.
Jetzt müssen wir Dateien im Linux -Verzeichnis erstellen, da wir zuerst mit dem Befehl „CD“ wie unten gezeigt in unser Linux -Verzeichnis übergehen:
Linux@Linux-virtualBox: ~ $ CD Linux
Nach dem Ausführen des Befehls in unserem Terminal sieht es so aus.
Mit dem Befehl „echo“ erstellen wir eine neue Datei mit einem Dummy -Text darin, indem wir den folgenden Befehl ausführen:
linux@linux-virtualBox: ~/linux $ echo "meine neue Datei 1"> myfile_a.txt
linux@linux-virtualBox: ~ /linux $ echo "meine neue Datei 1"> myfile_b.txt
linux@linux-virtualBox: ~ /linux $ echo "meine neue Datei 1"> myfile_c.txt
linux@linux-virtualBox: ~ /linux $ echo "meine neue Datei 1"> myfile_d.txt
Wir haben 4 Dateien in unserem Linux -Verzeichnis erstellt, in dem sie "myFile_a", "myFile_b" genannt werden, nennen,
"MyFile_c" und "myFile_d", die wir im Snippet unten sehen können. Es gibt mehrere Möglichkeiten, neue Dateien wie die Verwendung des Nano -Texteditors, den CAT -Befehl, die Berührungsbefehle und viele weitere zu erstellen, und vieles mehr. Es ist nicht obligatorisch, immer Echo zu verwenden. Sie können jeden Befehl verwenden, den Sie möchten.
Während wir unsere Dateien erstellt haben, ist es Zeit, alle Dateien für die Loop einzubeziehen. Um dies auszuführen, werden wir einen weiteren Befehl ausführen.
linux@linux-virtualBox: ~ /linux $ für f in *; wiederholt $ f; Erledigt
Im obigen Befehl haben wir eine Variable „F“ erstellt, die die Aktion definiert, die bei der Ausführung der Schleife ergriffen wird. In unserem Fall zeigen wir die Dateinamen an, die im Linux -Verzeichnis gespeichert sind, wie wir im Snippet unten sehen können.
Durch die Verwendung des obigen Befehls haben wir die Dateinamen angezeigt, die im Linux -Verzeichnis gespeichert sind. Nehmen wir an, wir möchten den Inhalt zusammen mit dem Dateinamen anzeigen. Er kann auch für Schleife verwendet werden, anstatt den Befehl echo immer wieder zu schreiben.
linux@linux-virtualBox: ~ /linux $ für f in *; wiederholt $ f; Erledigt
Wie unten gezeigt, wird der Inhalt aller Dateien unten durch die neue Zeile getrennt angezeigt. Im obigen Befehl haben wir eine Variable „F“ erstellt. Es ist nicht erforderlich, dieselbe Variable zu erstellen. Sie können jede Variable entsprechend Ihrem Bedarf erstellen. Es ist nicht obligatorisch, „F“ zu verwenden.
Abschluss
Heute haben wir Schleifen durch die Verzeichnisse untersucht und Sie in die für die für die Loop verwendete Schleife vorgestellt, die zum Abholen von Dateien aus Verzeichnissen und auch mit seinen Arbeiten verwendet wird. Wir haben Ihnen die Methode erklärt, „für die Schleife“ zum Abholen der Verzeichnisse mit einem einfachen Beispiel zu verwenden, in dem wir zum ersten Mal ein neues Verzeichnis und eine neue Dateien erstellt haben, und dann haben wir sie einfach mit "für Schleife" zugegriffen.