Kopieren Sie die Liste der Dateien mithilfe des Bash -Skripts

Kopieren Sie die Liste der Dateien mithilfe des Bash -Skripts
Bash (Bourne Again Shell) ist die Art von Shell, die für die Ausführung von Befehlen und Skripten dient. Bash war eine entwickelte Version der SH Shell. Das Bash -Skript ist eine Datei, in der mehrere Shell -Befehle geschrieben 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 aus.

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

$ bash -Verssion

Bash -Version Ausgabe.

Erstellen und Ausführen von Bash -Skript

Beginnen wir mit dem Erstellen einer einfachen Datei mit einem beliebigen Editor Ihrer Wahl. Für mich ist der VI -Redakteur komfortabler. Um die Datei ausführbar zu machen, müssen wir Shebang hinzufügen (!#) und Bash -Interpreter -Standort zu Beginn des Skripts. Ich habe einen Text erstellt.TXT -Datei und fügen Sie sie zu Bash_Demo Dir in meinem Heim -Dire hinzu, das Text für Demo -Zwecke enthält.

$ touch bash_demo.Sch
$ vi bash_demo.Sch

Fügen Sie nach dem Erstellen einer Datei die folgenden Zeilen in Ihrem Texteditor für eine Beispieldemo hinzu. Wenn Sie dies nicht getan haben, erstellt der Editor eine neue Datei zum Schreiben und beendet.

#!/Bin/Bash
CP -Text.txt /tmp /
echo “Datei kopiert.”

Wir können das Skript mithilfe verwenden ./ Vor der Skriptdatei, die die aktuelle DIR -Datei bestimmt.

$ ./bash_demo.Sch

Wenn wir das Skript ausführen, wird der folgende Fehler in unser Terminal geworfen.

Erste Ausführung der Bash -Datei.

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

$ chmod +x bash_demo.Sch

Ausgabe nach Erlaubnis erteilt.

Kopieren Sie nur Dateien aus einem bestimmten Verzeichnis

Um alle Dateien und DIR von einem bestimmten Pfad abzurufen. Im folgenden Beispiel führen wir den CP.

#!/Bin/Bash
dpath =/var/log/nginx/*
Für Datei in $ dath
Tun
Wenn [[-f $ Datei]]]
Dann
cp $ file/home/$ user/
anders
Echo „Es gibt keine Dateien auf dem angegebenen Pfad.”
fi
Erledigt

Kopieren Sie alle Dateien mit bestimmten Erweiterungen

In diesem Beispiel werden wir alle Dateien mit dem kopieren .Protokollerweiterung. Wir müssen addieren *.Melden Sie sich auf dem Pfad an, damit die einzige Datei mit iterieren .Protokollerweiterung nur für Schleife.

#!/Bin/Bash
Für Datei in/var/log/nginx/*.Protokoll
Tun
cp $ file/home/$ user/
Erledigt

Kopieren Sie alle Dateien, einschließlich Verzeichnis

In diesem Beispiel werden wir alle Dateien, einschließlich Verzeichnisse, rekursiv kopieren. Dafür müssen wir lediglich den Befehl für -r CP hinzufügen.

#!/Bin/Bash
Für Datei in/var/log/*
Tun
cp -r $ file/home/$ user/
Erledigt

Kopieren Sie Dateien aus dem benutzerdefinierten Pfad

In diesem Beispiel kopieren wir Dateien von benutzerdefinierten DIR. Dazu werden wir den Befehl read verwenden, um den Pfad vom Benutzer anzufordern und dann zu überprüfen, ob der Benutzer den Pfad zu DIR zur. Nachdem wir DIR überprüft haben, verwenden wir eine für die Schleife, um alle Dateien und DIR in den angegebenen Pfad zu iterieren, und filtern Sie dann erneut die einzigen Dateien mit dem if -Zustand heraus. Wenn die Bedingung übereinstimmt, wird der folgende CP -Befehl ausgeführt.

#!/Bin/Bash
Echo „Bitte geben Sie einen Weg zu Dir an.”
Pfad lesen
Wenn [[-d $ path]]]
Dann
für Datei in $ path/*
Tun
Wenn [[-f $ Datei]]]
Dann
cp $ file/home/$ user/
anders
Echo „Es gibt keine Dateien auf dem angegebenen Pfad.”
fi
Erledigt
anders
Echo "Pfad zu Dir ist erforderlich"
fi

In meinem Heim -Dir habe ich die folgenden Dateien und Dir.

Ausgabe bei der Bereitstellung des Pfades zu einer Datei.

Ausgabe bei der Bereitstellung des Dir -Standortpfads.

Nachdem wir die Skriptdatei ausgeführt haben, können wir die Ausgabe im vordefinierten DIR im Skript überprüfen. In meinem Fall habe ich die Datei in meinem Home -Dire kopiert, und das Folgende ist das Ergebnis.

Abschluss

In diesem Artikel erfahren wir, wie Sie Dateien mithilfe von Bash -Scripting kopieren können. Wir können viele andere Vorgänge wie eine Schleife, IF-ELSE usw. verwenden. Bash Scripting ist effektiver, wenn Sie mit mehreren Befehlen arbeiten, um bestimmte Aufgaben auszuführen. Ich hoffe, Sie mögen diesen Artikel zum Kopieren von Dateien mit einem Bash -Skript.