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.