Script bash pour déplacer des fichiers


11

Je suis débutant et j'ai besoin d'aide.

J'essaie de créer un script pour déplacer certains fichiers d'un répertoire dans un autre répertoire. Avant de créer le script, j'ai testé la commande et cela fonctionnait:

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

Après avoir fait le script avec nano:

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

J'ai rendu le script exécutable avec: chmod +x file puis exécuté en tant que ./filemais l'erreur suivante apparaît:

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

J'ai essayé et avec le sudo ./filefichier bash mais cela ne fonctionne pas.

J'utilise Ubuntu installé avec VirtualBox.


Vous devriez jeter un coup d'œil au Guide avancé de script Bash .
LiveWireBT du

Réponses:


20

C'est parce que vous avez utilisé #!bin/bash/et c'est faux. La bonne façon est:

#!/bin/bash

Cela s'appelle un shebang et il indique au shell avec quel programme interpréter le script, lorsqu'il est exécuté.

Autre chose: le chemin absolu pour l'interpréteur bash dans Ubuntu est /bin/bash, pas bin/bash/ou autre chose. Vous pouvez vérifier cela en utilisant la which bashcommande.

Et autre chose, mais vous le savez probablement: la ligne suivante:

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

n'affichera qu'un SMS avec mv /path/to/source /path/to/destination. Pour vraiment déplacer des fichiers, utilisez le script suivant:

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

Voilà à quoi devrait ressembler votre script.


1
fyi, Ubuntu a historiquement empaqueté une version merdique de la whichcommande incroyablement utile . Cela vaut la peine d'installer manuellement pour obtenir le gnu qui .
djeikyb
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.