BASH-Programmierung

Liste der Dateien mit Bash-Skript kopieren

Liste der Dateien mit Bash-Skript kopieren
Bash (Bourne Again Shell) ist die Art von Shell, die zum Ausführen von Befehlen und Skripten dient. Bash war eine weiterentwickelte Version der sh-Shell. Bash-Skript ist eine Datei, in der mehrere Shell-Befehle geskriptet werden, um eine bestimmte Aufgabe auszuführen. In diesem Artikel werden wir sehen, wie wir mehrere Dateien mit einem Bash-Skript kopieren können. Für diesen Artikel verwende ich Ubuntu 20.04, um das Beispiel zu demonstrieren.

Hinweis: - $USER druckt die Benutzernamen der aktuellen Login-Benutzer.

Wenn Sie neugierig sind, welche Version der Bash-Shell im System installiert ist, können wir sie mit dem folgenden Befehl überprüfen check.

$ bash --version

Ausgabe der Bash-Version.

Bash-Skript erstellen und ausführen

Beginnen wir mit der Erstellung einer einfachen Datei mit einem beliebigen Editor Ihrer Wahl. Für mich ist der vi-Editor komfortabler. Um die Datei ausführbar zu machen, müssen wir shebang (!#) und Position des Bash-Interpreters am Anfang des Skripts. Ich habe einen Text erstellt.txt-Datei und fügen Sie sie dem bash_demo-Verzeichnis in meinem Home-Verzeichnis hinzu, das Text für Demo-Zwecke enthält.

$ touch bash_demo.Sch
$ vi bash_demo.Sch

Fügen Sie die folgenden Zeilen in Ihrem Texteditor für eine Beispieldemo hinzu, nachdem Sie eine Datei erstellt haben; Wenn nicht, erstellt der Editor beim Schreiben und Beenden eine neue Datei.

#!/bin/bash
cp-Text.txt /tmp/
echo „Datei kopiert.”

Wir können das Skript ausführen mit ./ vor der Skriptdatei, die die aktuelle dir-Datei bestimmt.

$ ./bash_demo.Sch

Wenn wir das Skript ausführen, wird der folgende Fehler in unserem Terminal ausgegeben.

Erste Ausführung der Bash-Datei.

Wenn wir standardmäßig eine Datei erstellen, hat der Benutzer keine Ausführungsberechtigung für die Datei. Um dem Benutzer die Ausführungsberechtigung zu erteilen, muss der folgende Befehl ausgeführt werden.

$ chmod +x bash_demo.Sch

Ausgabe nach erteilter Erlaubnis.

Nur Dateien aus einem bestimmten Verzeichnis kopieren

Um alle Dateien und das Verzeichnis aus einem bestimmten Pfad abzurufen, verwenden wir eine for-Schleife im Skript und filtern dann die einzige Datei mit der if-Bedingung heraus. Im folgenden Beispiel führen wir den Befehl cp nur aus, wenn der Iterator eine Datei war, die bestimmt wird -f flag.

#!/bin/bash
dpath = /var/log/nginx/*
für DATEI in $dpath
tun
if [[ -f $DATEI ]]
dann
cp $DATEI /home/$USER/
sonst
echo „Es gibt keine Dateien im angegebenen Pfad.”
fi
getan

Kopieren Sie alle Dateien mit bestimmten Erweiterungen

In diesem Beispiel kopieren wir alle Dateien mit dem .Log-Erweiterung. Wir müssen hinzufügen *.loggen Sie sich in den Pfad ein, damit die einzige Datei mit iteriert wird .Log-Erweiterung nur für Schleife.

#!/bin/bash
für DATEI in /var/log/nginx/*.Log
tun
cp $DATEI /home/$USER/
getan

Kopieren Sie alle Dateien, einschließlich Verzeichnis

In diesem Beispiel kopieren wir alle Dateien, einschließlich der Verzeichnisse, rekursiv. Dazu müssen wir einfach den Befehl -R cp hinzufügen, wobei -R das rekursive Abrufen des Verzeichnisses bestimmt.

#!/bin/bash
für DATEI in /var/log/*
tun
cp -R $DATEI /home/$USER/
getan

Kopieren Sie Dateien aus dem benutzerdefinierten Pfad

In diesem Beispiel kopieren wir Dateien aus einem benutzerdefinierten Verzeichnis. Dazu verwenden wir den Befehl read, um den Pfad vom Benutzer anzufordern und dann zu prüfen, ob der Benutzer den Pfad zu dir angibt oder nicht, was durch das Flag -d in der Bedingung erfolgt. Nach der Überprüfung von dir verwenden wir eine for-Schleife, um alle Dateien und das Verzeichnis innerhalb des angegebenen Pfads zu durchlaufen, und filtern dann erneut die einzigen Dateien mit der if-Bedingung heraus. Wenn die Bedingung zutrifft, wird der folgende cp-Befehl ausgeführt.

#!/bin/bash
echo „Bitte geben Sie einen Pfad zu dir an.”
Pfad lesen
if [[ -d $pfad ]]
dann
für DATEI in $path/*
tun
if [[ -f $DATEI ]]
dann
cp $DATEI /home/$USER/
sonst
echo „Es gibt keine Dateien im angegebenen Pfad.”
fi
getan
sonst
echo „Pfad zum Verzeichnis ist erforderlich“
fi

In meinem Heimatverzeichnis habe ich die folgenden Dateien und Verzeichnisse.

Ausgabe bei Angabe des Pfads zu einer Datei.

Ausgabe bei Angabe des Verzeichnispfads.

Nach dem Ausführen der Skriptdatei können wir die Ausgabe im vordefinierten Verzeichnis im Skript überprüfen. In meinem Fall habe ich die Datei in mein Home-Verzeichnis kopiert und das folgende Ergebnis ist:.

Fazit

In diesem Artikel erfahren Sie, wie Sie Dateien mithilfe von Bash-Scripting kopieren. Wir können viele andere Operationen wie eine Schleife, if-else usw. verwenden. Bash-Scripting ist effektiver, wenn Sie mit mehreren Befehlen arbeiten, um bestimmte Aufgaben auszuführen. Ich hoffe, Ihnen gefällt dieser Artikel zum Kopieren von Dateien mit einem Bash-Skript.

Herunterladen und Spielen von Sid Meier's Civilization VI unter Linux and
Einführung in das Spiel Civilization 6 ist eine moderne Version des klassischen Konzepts, das in der Reihe der Age of Empires-Spiele eingeführt wurde....
So installieren und spielen Sie Doom unter Linux
Einführung in Doom Die Doom-Serie entstand in den 90er Jahren nach der Veröffentlichung des ursprünglichen Doom. Es war sofort ein Hit und seitdem hat...
Vulkan für Linux-Benutzer
Mit jeder neuen Grafikkartengeneration stoßen Spieleentwickler an die Grenzen der grafischen Wiedergabetreue und kommen dem Fotorealismus einen Schrit...