Bash-Skript zum Verschieben von Dateien

11

Ich bin ein Anfänger und ich brauche Hilfe.

Ich versuche, ein Skript zu erstellen, um einige Dateien aus einem Verzeichnis in ein anderes Verzeichnis zu verschieben. Bevor ich das Skript erstellt habe, habe ich den Befehl getestet und er hat funktioniert:

mv /path/to/source  /path/to/destination

Nachdem ich das Skript erstellt habe mit nano:

#!bin/bash/
echo "mv /path/to/source  /path/to/destination"

Ich habe das Skript ausführbar gemacht mit: chmod +x file und dann ausgeführt als, ./fileaber der folgende Fehler wird angezeigt:

bash: ./move.sh: /bin/bash/: bad interpreter: Not a directory

Ich habe versucht und mit sudo ./fileund Bash-Datei, aber es funktioniert nicht.

Ich verwende Ubuntu, das mit VirtualBox installiert ist.

Vincioti Ana-Maria
quelle
Sie sollten sich das Advanced Bash-Scripting Guide ansehen .
LiveWireBT

Antworten:

19

Das liegt daran, dass Sie verwendet haben #!bin/bash/und das ist falsch. Der richtige Weg ist:

#!/bin/bash

Dies wird als Shebang bezeichnet und teilt der Shell mit, mit welchem ​​Programm das Skript bei der Ausführung interpretiert werden soll.

Eine andere Sache: Der absolute Pfad für Bash-Interpreter in Ubuntu ist /bin/bash, nicht bin/bash/oder etwas anderes. Sie können dies mit dem which bashBefehl überprüfen .

Und noch etwas, aber wahrscheinlich wissen Sie das: die folgende Zeile:

echo "mv /path/to/source /path/to/destination"

zeigt nur eine Textnachricht mit an mv /path/to/source /path/to/destination. Verwenden Sie das folgende Skript, um Dateien wirklich zu verschieben:

#!/bin/bash
mv /path/to/source /path/to/destination

So sollte Ihr Skript aussehen.

Radu Rădeanu
quelle
1
Zu Ihrer Information, Ubuntu hat in der Vergangenheit eine beschissene Version des unglaublich nützlichen whichBefehls verpackt . Es lohnt sich die manuelle Installation, um das Gnu zu bekommen, das .
Djeikyb