Script Bash per spostare i file


11

Sono un principiante e ho bisogno di aiuto.

Sto cercando di creare uno script per spostare alcuni file da una directory in un'altra directory. Prima di creare lo script ho testato il comando e funzionava:

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

Dopo aver realizzato la sceneggiatura con nano:

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

Ho reso lo script eseguibile con: chmod +x file e quindi eseguito come ./filema appare il seguente errore:

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

Ho provato e con sudo ./filee bash file ma non funziona.

Sto usando Ubuntu installato con VirtualBox.


Dovresti dare un'occhiata alla Guida avanzata di script Bash .
LiveWireBT

Risposte:


20

Questo perché hai usato #!bin/bash/e questo è sbagliato. Il modo giusto è:

#!/bin/bash

Questo si chiama shebang e dice alla shell con quale programma interpretare lo script, quando eseguito.

Un'altra cosa: il percorso assoluto per l'interprete bash in Ubuntu è /bin/bash, non bin/bash/o qualcos'altro. Puoi verificarlo usando il which bashcomando.

E un'altra cosa, ma probabilmente lo sai: la seguente riga:

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

visualizzerà solo un messaggio di testo con mv /path/to/source /path/to/destination. Per spostare veramente i file usa il seguente script:

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

Ecco come dovrebbe apparire la tua sceneggiatura.


1
a proposito, Ubuntu ha storicamente impacchettato una versione schifosa del whichcomando incredibilmente utile . Vale la pena l'installazione manuale per ottenere lo gnu che .
djeikyb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.