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 --versionAusgabe 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/bashcp-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.SchWenn 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.SchAusgabe 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/bashdpath = /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/bashfü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/bashfü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/bashecho „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.